{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 12:40:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02b92b76-dc26-4cb6-8558-0bf177253405","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 12:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 12:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:45:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f01e27bf-5f4d-428a-8af4-7fedd265511a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 12:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:50:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7aee942e-204c-4567-8638-b76ae3e69cf7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 12:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 12:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 12:55:00","totalConnections":1}
{"durationMs":1.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dab4111d-b3d8-41bd-bcf7-5815d492a402","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 13:00:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cbcac19f-7c57-4836-b982-a11752402c39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 13:05:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ecf9653-252c-44fd-b555-db52c85230e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 13:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 13:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 13:10:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a73e1b84-f1ce-4439-af6d-f4b0f1930f2a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 13:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 13:15:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85e6da23-b678-40b5-9c2f-55a018325cba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 13:20:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97bb3d18-8e50-4734-98ef-9a6a62e120e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 13:25:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17a64ebd-a542-4142-80fa-245019c9ca4d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 13:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:30:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6e747cf-b64d-4189-a06d-e5dd521c4ee0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 13:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 13:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:35:00"}
{"durationMs":1.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"deccbac3-f08d-4320-a012-9fc9446d94bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 13:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 13:40:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a204cd02-dec6-4af4-a54c-a7f36d21bc2a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 13:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 13:45:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e7b6ea8-b210-45f1-97e4-17e241328a47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 13:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 13:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:50:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6c83618-2792-4849-beb3-8718e7e2a4e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 13:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 13:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:55:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ffee61be-7a09-4805-9450-981cd9904bea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 14:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:00:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56a963a8-fe83-4049-937b-eac5d7691dbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 14:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:05:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73774e47-c111-4848-abb5-dd1dcd5768c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 14:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 14:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:10:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b05e6440-7346-4a5e-971a-f7c636f0c2e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 14:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:15:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"081b34f5-fe28-411c-ae81-f365bc246e47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 14:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 14:20:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bea75bc0-9b37-41cb-a839-1e405dd0c540","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 14:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 14:25:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"221cd021-6b1f-40ca-b8d0-815ade553315","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 14:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:30:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b081482-c5e7-47e5-b8c1-44a04637b20d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 14:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:35:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea8f20be-e1c3-4fa4-828b-a00838850dac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 14:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 14:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 14:40:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9565813a-47bc-47dd-98ad-d36fbaf566cc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 14:45:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5fcb64bc-5bf7-4f91-9476-adaf35c9e4a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 14:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 14:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 14:50:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e753f044-a7d1-48e7-bc17-781c11d078a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 14:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:55:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f758f62e-7e45-4ee7-91a9-3b2c44fcaf60","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 15:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:00:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"318b05f5-4228-421a-bd57-9bb86fd9c54a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 15:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 15:05:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb2e8ea3-a154-4d25-bf7d-09b1dcabcb90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 15:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 15:10:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd30437e-643b-49c2-b1ce-26f8de5016ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 15:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 15:15:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5dd8922-9110-491b-bc64-9374553679f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 15:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:20:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5aa5254-9c4d-4116-9ded-5031cbadeb2e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 15:25:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"570ed246-3f0d-41b7-9043-dee9c5863f40","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 15:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 15:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 15:30:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f59457c-5a7d-4fda-be88-c98ad331fe5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 15:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 15:35:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1be1316-9985-4d3a-bdd4-6196e16ce510","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 15:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:40:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c82d1e0b-0ab1-4a0b-b3d3-905656a8b3d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 15:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 15:45:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"09f523b9-a3c7-415d-93e0-0f81d21c42eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 15:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 15:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 15:50:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"78d29492-73e3-48bb-b127-a00cc389be31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 15:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 15:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 15:55:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7377c65d-b97b-40ee-b50a-9b1966c1e0be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 16:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:00:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e051917-aae6-4637-977a-125099f88825","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 16:05:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc63c9e7-86d7-4310-9e7b-162cd96a19a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 16:10:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"769be3e6-370b-43ce-a4b1-9f5a9cd01f20","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 16:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 16:15:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8500af6-9df2-4a6b-9b66-3150a3e6eab5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 16:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 16:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:20:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e80f3560-780b-4eb1-aab8-5a01d3a0cc6b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 16:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 16:25:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f620125-13b5-4437-884e-2203d42f41c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 16:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 16:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 16:30:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05f53ad6-9a4b-422e-a22c-498e0007382c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 16:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 16:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 16:35:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bca95599-c126-41b2-a771-f10c663c9f94","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 16:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 16:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:40:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87a9fd25-4e5e-4030-9d0a-3a3aca1877a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 16:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 16:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 16:45:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8944a758-2985-4e93-87ce-a87aa97314de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 16:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 16:50:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49b802bc-2809-4bae-8d38-f2ac94fc1483","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 16:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:55:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"034196ed-64a4-40c3-9407-83c1e6199497","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 17:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:00:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"776347f1-0e98-4d6b-ac64-0db65094afca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 17:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 17:05:00","totalConnections":1}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dac519b8-a5e7-42ec-ad5b-5ed14ab8aeba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 17:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 17:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 17:10:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54abb6b9-7764-4c6c-8887-f08f2d361890","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 17:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 17:15:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b1b90e3c-d981-45dd-9f12-41c013afeeae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 17:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:17:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 17:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:20:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d25da92-67ec-4e50-b415-585e65062c72","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 17:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:25:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ed19f4d-4b95-47b8-a7a9-a497701426f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 17:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 17:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:30:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8bf8f87b-e573-410f-bf7b-d0930c97003f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 17:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 17:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 17:35:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5233e7d1-ca30-4aa5-b454-ff2941d5772a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 17:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:40:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71ee1cb3-d871-49e0-80b8-ca9bd70fdfe0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 17:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:45:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad68f13d-82a0-499a-b9e7-23eb2a11af29","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 17:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 17:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 17:50:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12ecd5ae-5b64-43b4-886a-5c03f3168d02","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:54:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 17:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:55:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7dffb3e2-46fa-4e58-8e2a-a11b6d28fb6e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 17:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 18:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:00:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f53c83fa-1a20-49d1-b2d8-57225165433b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 18:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 18:05:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2b66f50e-431b-45cc-998f-775e9fabc114","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 18:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 18:10:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11e5cad4-dbb1-4568-b811-b77ebedaed15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 18:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:15:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"851eaac8-4898-48c9-94a1-71764414365b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 18:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 18:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:20:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"174355a6-f28a-4447-b044-91d574e8aff1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 18:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:25:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"faf78317-5933-47b9-bf82-a20693033052","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 18:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 18:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 18:30:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6fb023a9-efa1-4ded-a01f-d2a6a78bc3aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 18:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 18:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:35:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"47718bb9-0046-4662-8fd4-0c7841686b7c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 18:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 18:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:40:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"617878d8-6d4c-4939-b121-9bb2edd4faa1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 18:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 18:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:45:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82cea015-33f3-4a6b-b589-012599f691d9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 18:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 18:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 18:50:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c48afbf8-b2e4-4a25-960c-ae3a355b199c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 18:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:55:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d07a262-4ff5-4e01-b550-9b769b26d699","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 19:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:00:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"398dc896-dde5-4aa3-ba78-d489b5fa2a34","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:01:00"}
{"durationMs":1.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99d87bb7-95a0-46b4-947e-5b3771b0a1ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:01:32","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 19:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:05:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4898bacb-2bc0-4e70-930b-d0b8273b0a31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 19:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 19:10:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f563bf04-9fa0-4b0f-8cee-76e7dacdd31b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 19:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 19:15:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a5fff83-0792-4478-afd1-14258ec59d93","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 19:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:20:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05f18d4b-f413-4cf2-9137-e57532c320f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 19:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:25:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9f7e865c-ca53-46b2-b1b9-4c9ede1adb23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 19:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 19:30:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4467b557-5ef4-4421-bcf4-27b5e651afc3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 19:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 19:35:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8a8b13a8-44e9-4fa9-86c6-9224595e0a36","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 19:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:40:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d135dcfe-8641-446b-a1dd-160e0eb0b0f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 19:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:45:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87444eef-f6ca-4607-b4e5-6aefdd8eee72","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 19:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:50:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b05162f-6668-4d34-b622-cb59e6a3b4fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 19:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:55:00"}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"079c5543-9535-44b4-aff9-cb0cd56b4b6d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 20:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:00:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6251ec4a-1d01-4dc9-97bc-664bdd7542e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 20:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:05:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6eca2ba6-2c48-47d8-918c-9279899bccd9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 20:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:10:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63f0364a-c45d-4b4f-8ed4-5a35a1781748","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 20:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:15:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"baf865c6-c162-4e91-9458-39c22d6c7de4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 20:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 20:20:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be2933bd-1438-4b8b-9afb-5b02a1823cf1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 20:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:25:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5df7f6d-896d-4fa3-954f-52a1172beb17","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:26:00"}
{"durationMs":1.31,"ip":"154.159.237.79","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e282df5a-61bb-4af8-8ae2-00d8dc5148c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:26:56","userId":null}
{"durationMs":2.11,"ip":"154.159.237.79","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"a70ff28f-6952-4d5d-9ce4-93a7c4dfa488","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-01 20:26:57","userId":null}
{"durationMs":1.16,"ip":"154.159.237.79","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"aa0e385b-6b35-4587-8631-9eaabecaef08","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-01 20:26:57","userId":null}
{"durationMs":1.02,"ip":"154.159.237.79","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c33a82c9-627b-4173-94cd-643025e58d85","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-01 20:26:57","userId":null}
{"durationMs":2.06,"ip":"154.159.237.79","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"2ef22a9f-5963-4c78-b67e-8dcf5a8d6ceb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-01 20:26:57","userId":null}
{"durationMs":1.59,"ip":"154.159.237.79","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"93ecde58-b240-47bb-9735-52438d029379","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-01 20:26:57","userId":null}
{"durationMs":1.44,"ip":"154.159.237.79","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"95afb950-b49d-4d8b-a722-a5e7f456cca1","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-01 20:26:57","userId":null}
{"durationMs":1.83,"ip":"154.159.237.79","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=&limit=100","requestId":"fe9a9126-9d56-4627-b4e5-e0b42bf58d7f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-01 20:26:57","userId":null}
{"durationMs":1,"ip":"154.159.237.79","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"b594fe64-496c-4d96-8010-d15538a1a020","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-01 20:26:57","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:27:00"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":1235.4,"event":"API_ERROR","ip":"154.159.237.79","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-01 20:27:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1249.3,"event":"API_ERROR","ip":"154.159.237.79","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-01 20:27:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1254.3,"event":"API_ERROR","ip":"154.159.237.79","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-01 20:27:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/academics/years"},"durationMs":1310.9,"event":"API_ERROR","ip":"154.159.237.79","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-01 20:27:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/academics/streams"},"durationMs":1312.6,"event":"API_ERROR","ip":"154.159.237.79","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-01 20:27:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":1316,"event":"API_ERROR","ip":"154.159.237.79","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-01 20:27:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/assessments"},"durationMs":1318.1,"event":"API_ERROR","ip":"154.159.237.79","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-01 20:27:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/cbc/learning-areas"},"durationMs":1320.8,"event":"API_ERROR","ip":"154.159.237.79","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-01 20:27:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.56,"ip":"154.159.237.79","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9163e6b9-7cf1-417c-9851-9e5af6a28269","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:27:01","userId":null}
{"durationMs":189.87,"ip":"154.159.237.79","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"5c77100c-260c-409c-8ee9-a1b16a00eac4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:27:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 20:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:30:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"18446f04-8248-42bb-8311-75bb14c526f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 20:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:35:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7363f7f5-1317-4015-95c3-061465d6fa54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 20:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:40:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aabd70e4-44af-4baa-90ec-27e2923fe28a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 20:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:45:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d444e3d-44ae-47fd-9928-af512592d6db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 20:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:50:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e3a648c-f807-4d19-b1aa-ed138e51baaf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 20:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:55:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f04d91ea-d562-410b-800a-5ec22190779b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 20:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 21:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:00:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fdb07626-88f0-4622-bd2e-4fa99ad87c21","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 21:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:05:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c70c884-2e20-49f0-a393-8f137f3a7893","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 21:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 21:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:10:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b607dce3-4391-41c8-83d6-2f0ff1b1ec09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 21:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 21:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:15:00"}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29a070be-0b72-46a8-ba33-64cba9efacc1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 21:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 21:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:20:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7b896a1-60cb-4fba-ab01-601d2009b1a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 21:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:25:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"297ebc42-b9c9-4bc6-853d-ab9d3fbe9fe6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 21:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 21:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:30:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12a75ce4-8348-423e-a3ce-e9cfae996952","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 21:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:35:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"093b13ac-6878-4d7f-b254-62d7891c9ba2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 21:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 21:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:40:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c76becbc-6e28-4990-aa2b-4c2ce59ce33f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 21:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:45:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b737b553-7997-4509-b69f-8a4e1bd1d7d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 21:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:50:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31a1d28c-aaf0-485d-8652-dbd58769d8ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 21:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 21:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:55:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d02f05ab-c03e-447b-8f43-0d7ac4e972e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 21:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 22:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:00:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c692af40-cab0-4b2f-ba19-716c713eebcc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 22:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:05:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9dd418a4-0d6d-4f5a-864d-dff8b3222a8d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 22:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 22:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:10:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d2bc2f0-eb5e-4731-8b5c-9173bf4ade36","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 22:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 22:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:15:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"740bfe46-b26d-408d-a3b0-a6fea4ea39b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 22:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:20:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"108502c6-3e42-43ac-bbb4-b4e7edceef03","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 22:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:25:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f590da30-c03c-4fe6-a938-0d1f2ecfcb4e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 22:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:30:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13fecf17-3932-48e3-b0fa-52d4a53b99ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 22:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:35:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d385d3e-dd1d-4698-8495-e7c6e01fe453","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 22:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 22:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:40:00"}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc51300c-77f4-4da0-93ea-2b669a5444b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 22:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:43:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 22:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:45:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c571453-fd91-4791-9c61-ae0f7649e88f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 22:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 22:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:50:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75761307-c98c-474e-9df7-afb4a0feb08c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 22:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 22:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:55:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33b4f26e-380f-418f-986a-063da5b21d7d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 22:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 23:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:00:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f09afe8-086b-4b60-adba-a86c4694bc18","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 23:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 23:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 23:05:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2f9144c1-863f-4ba9-98fd-0da563b80ef3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 23:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:10:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9af7f060-696b-4c1c-ac7f-1177f87a6574","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 23:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 23:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:15:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8e72086-e86f-46bd-810d-40f3321fa1ea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 23:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 23:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:20:00"}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33723023-bf34-47e6-9d5d-0cae9118aaba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 23:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 23:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:25:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"909240cb-0010-40ff-b871-6a12963b5892","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 23:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:30:00"}
{"durationMs":1.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eeb91d92-f322-42ca-83ac-2b5fbe09c2e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 23:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:35:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98bdaeac-c948-4b5d-9102-bfd499625da2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 23:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 23:40:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de7f56e5-621d-40f2-909e-8b5434f27038","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 23:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 23:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:45:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"639eca6a-757e-4057-8fb9-8397053a2912","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 23:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 23:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:50:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23578796-36b3-45f4-91de-c6fc3ac62200","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 23:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-01 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-01 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-01 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-01 23:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:55:00"}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0c861bb-1424-4faf-80b8-be7c9ec95cad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-01 23:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-01 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 00:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:00:00"}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"225d7f80-7ee1-44c5-b86d-4098249dc00e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 00:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:05:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ef5768f-d3b2-41a0-a5d6-0644466056dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 00:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 00:10:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e122c5f-950d-4c1e-a226-cdcab94c81e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 00:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 00:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:15:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"648e9e7b-8f16-4ac3-873f-8cf4b8659be9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 00:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 00:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:20:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04c82ef3-54f7-450d-91c0-e00a4074d48e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 00:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:25:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75942599-6975-47ea-9471-694f8a29ee5e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 00:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 00:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:30:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7c97515c-c168-4322-bc7d-e853e17d2174","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 00:35:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22853ec5-c47f-486a-b2c5-591d4d3c8591","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 00:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:40:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b754651-403b-476a-b89d-b98f3cc17b10","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 00:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 00:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:45:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e21c8afd-7e88-4ac3-8771-46ee4d096cc6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 00:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 00:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:50:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7d6f4ba-4160-4037-af81-fc5ef1f2841a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 00:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 00:55:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d38f76c6-ed4d-4e17-a8ab-6d0224bbfc52","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 00:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 01:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:00:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd2fbe3d-9eda-411d-8f2f-2ebbd554d07e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 01:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 01:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:05:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87908204-2360-4ce7-aae0-bc4948a93d53","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 01:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 01:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:10:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db0116c0-ac91-4983-b12b-98dcd8daabb5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 01:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:15:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa1e0ca6-0d76-4275-9194-458b19245ff3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 01:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:20:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3775c3b-8310-4c31-ab6a-18824314617d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 01:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:25:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"083725ae-7867-4313-b2ea-1411e52f2997","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 01:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 01:30:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f8c5215-c7c6-4ac1-9277-178dc909c1f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 01:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 01:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:35:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"95c970ef-7734-4d2b-81ca-66d344a42f82","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 01:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 01:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:40:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b090281a-512f-4614-bd85-a7c204bb6006","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 01:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 01:45:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 01:45:01","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1588e2c9-83ca-4034-a54c-e39030117111","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 01:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:50:00"}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3a0ae12f-5129-401e-aaf3-ee5f7a51c4cb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 01:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:55:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"808f6bc4-e1b6-488e-b51c-1600be4c7047","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 01:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 02:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:00:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b236ebc-03ed-4453-a9a5-861ccfbba31f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 02:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:05:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1ec0039-df81-481f-a817-daca832b14f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 02:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:10:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3d2b83f-6d7b-44a2-904b-14378afe18c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 02:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:15:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a4931f1-e34d-4c91-9fce-2dafab3b1410","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 02:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 02:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:20:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd843784-e2a4-4081-8e26-6f08e3a91e4a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 02:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 02:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:25:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"08d4e943-aea3-4772-8038-cbc0995eb731","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 02:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:30:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96ce567c-087e-4a36-b800-8e94b0952d6e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 02:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:35:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a745afa-9590-4680-ad7e-bbd7cdb3a9b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 02:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:40:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0704cfa-b620-4ac6-a242-e6aad492cd9e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 02:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:45:00"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66255c88-22b4-4b1c-9117-5aeea1d7a798","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 02:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:50:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77615667-982e-440d-8203-08a338ed9943","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 02:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:54:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 02:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:55:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e842d95-5739-42b4-949e-1e0c3105e2e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 03:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:00:00"}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"605df432-6b2f-48f5-9081-d040e5c23975","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 03:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:05:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2b2f6df9-39f3-4235-9993-46fa86adfdb6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 03:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 03:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:10:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"78d9bf5c-8637-4bab-8266-f8914e10e7ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 03:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 03:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:15:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a77c8a6-d141-4b9b-aeac-74ff1a0b13f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 03:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:20:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b421936b-4e23-4c9c-b863-9c3a87805401","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 03:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:25:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62c6dd7e-a6cd-40b4-aebd-88934f9974b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 03:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 03:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:30:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2c88ebe-8f42-4663-8d1a-0639519a5132","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 03:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:35:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad546dea-79ae-43cf-a887-5aee3b72ff5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 03:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:40:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bda4d3ff-b9b6-4960-8df3-92180e9de678","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 03:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 03:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:45:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ab233f1-3bb3-4c62-9a1c-ee8cede75b24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 03:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:50:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"853ff1e5-ba0c-4f96-a67e-4f01e610754a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 03:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 03:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:55:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2c3a033-8daa-42c6-8d0f-c38c3a922d37","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 03:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 04:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:00:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"869e5098-e9d6-46b2-83e5-f73d8f562943","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 04:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:05:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"08f3fd7e-5321-4c5d-834e-75f786ebb6ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 04:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 04:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:10:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1b59afd-b977-40a3-b677-66e399dbbfa3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 04:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 04:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:15:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24f75ab3-f21f-4418-9940-d02ac9f45fd0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 04:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 04:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:20:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2be9970c-2c4a-414e-b17b-83696a65afbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 04:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:25:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14364872-883d-4df6-bf4d-2f3cb6cc0568","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 04:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:30:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49c3e29a-1c2f-4f10-a194-19a246ff36b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 04:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:35:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e8b52a7-6264-4af9-a647-129128e6b6a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 04:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 04:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:40:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b470a4f-9e0e-414a-8016-009a76b0f8c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 04:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 04:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:45:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d525b31f-3b8b-4bbf-b00d-630376fb4389","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 04:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:50:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e454f22-589b-4d3d-b1a9-5dbb9d979191","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 04:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:55:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8be3cc8-d0da-4ec6-a8cc-651ce326f227","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 05:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:00:00"}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8598aec9-e7dc-44f9-ab5d-b21ac9e005c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 05:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:05:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"65a93cb2-29a2-4d63-9a12-a8ab1fb3b8c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 05:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 05:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:10:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0372274-9142-45d2-b553-91348dc59e22","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 05:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:15:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f339c5e4-96e5-404c-b5da-afa9c6a66461","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 05:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:20:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d02398f2-3aa4-44ae-b9ff-1942276cd682","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 05:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 05:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:25:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"add10615-dc1a-4ab0-8714-4e57aa5eda43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 05:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 05:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:30:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7a4833b-964e-40b6-b9e1-3b6d827c4a28","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 05:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:35:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6cb52486-9468-4e91-81e7-56101c4f572a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 05:40:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97cfd1b8-a409-4014-b39d-4418c1f76ed9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 05:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 05:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:45:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"909aa227-7ee5-4d05-9781-ccea06277d08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 05:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 05:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:50:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0fa190d-2b43-42cf-ae5b-74c280681213","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 05:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:55:00"}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a141f043-6590-47fc-a782-b676e8745edb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 06:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:00:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad695af1-3559-48be-9cea-cf3d19801311","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 06:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:05:00"}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ff5cbe6-77df-4423-a42d-8de2e87cb508","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 06:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:10:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72631fbc-f9bf-49c2-b731-54247707fefb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 06:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 06:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:15:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fda93f13-3685-455c-a92d-6fbb2a20d77e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 06:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:20:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ceac2fc0-6ed7-4406-9cbf-c2b646b80810","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 06:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:25:00"}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c335a151-32c3-4814-99e6-08d871b14b06","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 06:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:30:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"adcf8510-e981-4ed3-8369-773c38dca6ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:32:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 06:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:35:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e021085-1c37-45a2-b942-72952e8971d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 06:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 06:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:40:00"}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"55ab2924-fff1-4de6-b4db-a29b661ddc14","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 06:45:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"39d3b136-1e0e-4e52-87af-3ef92d363acc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 06:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:50:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c8fff29-4d4f-4f70-bc29-730b7ee3375b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 06:55:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a660f5b-9c46-43a8-88b8-ebf349b1f94d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 06:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 07:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:00:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"269bb772-ae24-4598-b7e8-3b42228fead0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 07:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:05:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a021f033-7ed0-4003-9ad6-8008b861e9cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 07:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 07:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:10:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b0078824-ea5f-446a-8ab8-999e05631623","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 07:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:15:00"}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9dd79927-749d-4ef0-a43d-473d0f591f19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 07:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:20:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a408761-39c9-4744-862e-5d47425d668e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 07:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 07:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:25:00"}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"544216b6-419b-4a80-8ac2-cceab53f9944","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 07:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 07:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:30:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58652791-25f3-494b-a606-072a3b0ab78d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 07:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:35:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ef932e1-ab1e-4b39-97cb-c4f56ac77ccf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 07:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 07:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:40:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85a82b89-e5dc-482d-b557-7fc534729789","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 07:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:45:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"480dc54f-977a-4104-84ef-905da59d42ab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 07:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 07:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:50:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"727581cd-ee33-4c6f-a6fb-1d50b00e7ab0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 07:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 07:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:55:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"69ab7ccb-d72b-4bbb-af90-1f33ccc2c514","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 07:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 07:59:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-02 08:00:00"}
{"level":"error","message":"[CRON] Library overdue check failed: Cannot read properties of undefined (reading 'findMany')","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findMany')\n    at cron.schedule.timezone [as _execution] (/home/aereuxky/cbcsms-backend/src/jobs/library-overdue.job.js:14:56)\n    at Task.execute (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/task.js:17:25)\n    at ScheduledTask.now (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:38:33)\n    at Scheduler.<anonymous> (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:25:18)\n    at Scheduler.emit (node:events:519:28)\n    at Timeout.matchTime [as _onTimeout] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduler.js:30:26)\n    at listOnTimeout (node:internal/timers:585:17)\n    at process.processTimers (node:internal/timers:521:7)","timestamp":"2026-09-02 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 08:00:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-02T05:00:00.915Z","service":"cbc-sms","timestamp":"2026-09-02 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-02 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-02 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-02 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-02 08:00:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14c184db-4aaf-4c7d-b4f7-0984642924bc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 08:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:05:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9550e719-e12f-4787-83e1-d80a9701257f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 08:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 08:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:10:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a626f7c-8076-437b-b92b-2c705a082221","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 08:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:15:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d605b5d3-c1ab-48c6-a275-11c5ec1825e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 08:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 08:20:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fac32611-b732-4eda-bd28-422ec0486c75","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 08:25:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 08:25:01","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:25:01"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"86028bfb-1a23-4952-a54d-f65840ded03e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 08:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 08:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:30:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ab3c646-f683-4d31-9d7f-24a62466f428","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 08:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:35:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f943ec1e-240b-497f-b9e3-f62bab2397e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 08:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:40:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4243532f-bf0d-45ac-bfff-2a0d3b155291","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 08:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:45:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5afe2efd-14ed-441d-8e35-08f1340ed815","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 08:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:50:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92c43701-7e93-439b-ab3f-1ec67fd39822","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 08:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 08:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:55:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c3997766-d828-4808-adac-96761adc596e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 08:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 09:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:00:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11254998-57a0-4a63-b467-fce84cb4e686","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 09:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:05:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23426030-5bc4-4c25-82b1-f49c6ff13c9a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 09:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:10:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77e18b20-781f-46b8-b74c-432a7080bdf7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 09:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 09:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:15:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"afb02820-51e6-4d76-a363-83133ed6349c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 09:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 09:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:20:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3bc00d3-ae74-4515-a859-a550489cf9be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 09:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:25:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c2cb02d-8953-4eed-a1b8-c7e842ce6bdd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 09:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 09:30:00","totalConnections":1}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-09-02 09:30:00"}
{"level":"error","message":"[CRON] Attendance alert failed: Cannot read properties of undefined (reading 'findMany')","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findMany')\n    at cron.schedule.timezone [as _execution] (/home/aereuxky/cbcsms-backend/src/jobs/attendance-alert.job.js:19:53)\n    at Task.execute (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/task.js:17:25)\n    at ScheduledTask.now (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:38:33)\n    at Scheduler.<anonymous> (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:25:18)\n    at Scheduler.emit (node:events:519:28)\n    at Timeout.matchTime [as _onTimeout] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduler.js:30:26)\n    at listOnTimeout (node:internal/timers:585:17)\n    at process.processTimers (node:internal/timers:521:7)","timestamp":"2026-09-02 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:30:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f58bc9c-dede-47fd-a504-f6236de78ebc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 09:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:35:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9627f1ee-d8c1-45a3-b7fd-434495a0f5ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 09:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:40:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e317452-0612-4e15-ab10-81355bd981dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 09:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:45:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af389a81-b730-4679-984a-42a9e48aa45c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 09:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 09:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:50:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ddc9c8e1-d5dd-4427-9b76-a8e3b410f1b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 09:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 09:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:55:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e47f2f64-7cca-43cc-9bf8-c9b00cb10d64","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 09:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 10:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:00:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf642859-682a-4664-9da8-eb350ea08797","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 10:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:05:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1ea8438-0ea0-432e-a80a-1d00e6204bc1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 10:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 10:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:10:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"711cbb17-f0a6-4d4a-8e72-4668d7ab31ef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 10:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 10:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:15:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"211119a2-d587-4080-be86-a33c7a9d29f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 10:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:20:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bd370ed-31d6-4679-b754-f09c35cdda79","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 10:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 10:25:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5fc0670-c1a4-4735-aa86-a781b1e90f57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 10:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 10:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:30:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6192dd14-4b89-4093-9172-ba0da771de03","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 10:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:35:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb704d82-67b0-49a0-8492-e36dd5f115d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 10:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:40:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a095ef3b-2fb2-4d9d-aa66-57e7829ced2c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 10:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:45:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8862329e-27dc-41f6-88f5-cfd7dd30eadd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 10:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:50:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"599bfac7-4ba9-4541-a535-d2090f666bd0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 10:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:55:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7d42b2bd-59e0-4300-b8da-f57c745636ef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 10:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 11:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:00:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79438d3c-065e-41d9-b861-818059eeb518","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 11:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:05:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f33001fd-fa17-4008-ab37-90b6668ce65a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 11:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 11:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:10:00"}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d3ceeb13-d973-435e-8528-e8c12b3cd348","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 11:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:15:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76123ae0-a570-4f3f-9633-1ec6ed13fe37","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 11:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:20:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3763c8f9-1cad-4c2b-869c-ce5b311a6ffb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 11:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:25:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d971c27d-06a2-43f8-849d-f25d437008cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 11:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:30:00"}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa034431-efb1-4a56-a996-7fc11788b967","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 11:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:35:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13af635b-c268-4569-a601-bf8a83a14b42","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 11:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 11:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:40:00"}
{"durationMs":0.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4097caf8-df82-4e6e-aa84-8222c71925b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 11:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 11:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:45:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67ad2de3-cabb-4405-9716-130d6190d406","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 11:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 11:50:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e163b799-331e-4270-ae05-47536660a012","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 11:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 11:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:55:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a0d892e-8262-489e-9417-c035382c96e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 12:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:00:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b2793cc-51c5-4a85-8438-55aa8999e7c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 12:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:05:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c61eade5-21d0-4f67-825b-a08738d39838","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 12:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 12:10:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d31c65e4-ad7c-4d54-80fb-7132b008a2d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 12:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:15:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6c0b051-2f33-4b37-ac1c-e14e92eef7a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 12:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:20:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7585cb6-1972-425f-91ea-436b3c419e69","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 12:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:25:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae2f20b4-eedc-4e6c-ba14-4e88a682c155","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 12:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 12:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:30:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3f7fdae-003e-48c5-8dc2-f3f75421e2cc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 12:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:35:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e01059a0-98bb-4a2b-8bb7-b9303ef4c10a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 12:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 12:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:40:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3436bc44-adb0-4233-aa94-bd14df5c9484","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 12:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 12:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:45:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77549fea-55bc-4177-bdf1-b6209246f383","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 12:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:50:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d9a5ceb7-c56f-4eb7-9c72-8f22a8465cdc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 12:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 12:55:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6aa5abf6-009e-4d3c-84b9-2311c5987a6f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 12:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 13:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:00:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc56426b-f339-4ae8-8483-554d9c150d6d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 13:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:05:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee3d43e7-8925-4ca1-918c-7022465cc43f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 13:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:10:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7c585e47-b1ba-426d-a738-b3e7495ec2c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 13:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:15:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a6bca55-3cb9-4d87-aa1f-aba9dab83836","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 13:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:20:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"79079923-75a2-46a2-8f01-9ccb634cc25c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 13:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:25:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ddf3fc0d-3dea-4ca2-b4fe-267f8e9e32f6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 13:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:30:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bfe36f3f-e1b5-443a-84cd-0bf2df3ba341","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 13:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:35:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab329ab7-d7f7-480c-92e4-e15aa79702bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:38:00"}
{"durationMs":1.51,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc28081b-7b9e-4b70-95e6-f87d023a7dec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:26","userId":null}
{"durationMs":1.6,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"31876db1-6596-496b-8614-3793f3ee9fdc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:33","userId":null}
{"durationMs":0.96,"ip":"197.136.9.5","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"093084ef-5b1e-45dd-9b9b-2f21ef1b47fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:42","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":7,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-02 13:38:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.91,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"42f3b778-debb-44c4-8c26-07baf9d01ab4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:45","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":16,"event":"UI_CLICK","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-02 13:38:47","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.2,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5ca166db-7bf9-48b6-8a87-ab86c8d386ab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:47","userId":null}
{"durationMs":2446.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"eb23487f-d354-4da0-87dd-e6ab57ae9217","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:48","userId":null}
{"durationMs":226.04,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"449ef126-047b-4f05-9bde-942feeb6d752","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":183.48,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"e67ce526-1ba3-4287-bfaf-d6ec17fe6fca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":195.19,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"a8b5944e-42c8-4222-8cd3-c2d92eb73b5f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":237.47,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"d497d941-5a28-459d-9320-7355257a0ab1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":269.38,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"65bb0cd0-2229-41c2-ae72-c3663aa98f5d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":322.02,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"11a5dbfc-3ef5-4b1c-8c5a-04bd01dcedff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":2890.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":611.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.67,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fd903487-4895-448a-ad59-0db9759c506a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":119.18,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"0c68dccd-275b-4a30-b7ef-ec3f90121cae","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":134.21,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"5df05cf6-2b3e-4d81-bb21-7ac785ff26a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":168.38,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a708bac0-992c-4fb0-a795-57dba92b24c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":148.93,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"10bc43dd-c340-4b3c-b5fe-c6d32cefdff3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":93.7,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"efdc7488-f900-487b-ab67-53a37e1872e7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":314.43,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"0d0e9ef2-274c-4666-99fd-d2d785726ea3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1078,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1101.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1101.9,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1102.8,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":1103.4,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1231.3,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1232.5,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1233.1,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1233.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":508.5,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.14,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"388287d6-da41-4831-8be0-eea63859d4f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":651.75,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"0d4f0028-b673-4865-a374-d5b83d227a58","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":693.75,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"838f3bec-3dcb-4ff7-aebf-1246f7808f27","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":706.94,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"a0a02fd3-2d63-4986-aee1-f11352b1f378","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":677.06,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"7660f4bf-00d8-442e-8061-8d8d91de7e02","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":701.34,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"befc0353-b541-4819-a5c3-05d3f6c7ea1f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":583.18,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"9f5d7368-df4c-4888-bb9a-cedaba97e479","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":860.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1157,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1173.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1268.9,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1269.5,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1270.1,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1270.6,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:38:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.77,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d099a5e5-6705-463e-8692-ab9861d37508","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:38:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 13:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:40:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fbbabc78-cd88-4030-a9d1-79a590c2ea49","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:40:01","userId":null}
{"durationMs":118.68,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e47263fc-3671-4423-8e9b-e96fb3d91778","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:40:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":115.67,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6267e298-b4f2-4a74-adf9-ff402753bfc4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:40:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.52,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"9d1e4366-e7d7-4bab-b390-d709f332026e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:40:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1490.5,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:40:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1492.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:40:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":710.4,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:40:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.37,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4e29c092-d6f3-4bbb-8a71-098bde9ebf03","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:40:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:43:00"}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af20f1e0-5cd8-4517-abcd-2c4b5a238f51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:43:04","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 13:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:45:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a44eb7ef-0101-480f-9a8b-7f9e569aab40","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:47:00"}
{"durationMs":137.05,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"215b519c-4f7f-4210-b4f4-148a8140f0e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:47:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":95.82,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6eba45bd-68a2-4c26-9ae4-b308c570b40d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:47:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":102.91,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"192f6e93-350d-4c71-b4fd-bdea7f486fde","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:47:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1242,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:47:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1244.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:47:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1131,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:47:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.07,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"02113600-92e1-493c-8279-a5caabba49a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:47:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:48:00"}
{"durationMs":127.6,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"9aafe956-f71f-48bd-9073-496d48eb3e6a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:48:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1213.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:48:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.38,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f9adb3ba-cfd2-48d4-a7d2-8e36e8140faf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:48:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.3,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3de3c24f-5b0a-4301-b724-78b8f0496c35","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:48:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.21,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a035b82d-e2bd-4bc2-8cae-a52633b6fe5f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:48:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.52,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"a8b1cf99-b852-4cd8-baaf-2b4d2c3215eb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:48:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":439,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:48:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":438.5,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:48:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":431.3,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:48:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.24,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"77e1cb34-4730-465c-b423-d41f65da7328","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:48:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:49:00"}
{"durationMs":152.66,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b5e60f51-3fdd-4dbc-ae22-063e7f7bd3c3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:49:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":223.33,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ede3aa4a-72e7-4e15-8391-2c54a6100e19","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:49:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.53,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"8d425498-db2c-4307-9cca-391e5daef229","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:49:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":790.5,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:49:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":857.9,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:49:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":636.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:49:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.5,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"39ada5db-f31c-4bba-b409-0eccdb1927c5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:49:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 13:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:50:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"628ac68e-eb1f-418f-a7b9-53887e63f789","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:50:01","userId":null}
{"durationMs":185.74,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"154bb413-e03b-4f08-9e44-9f9251ce1fe7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:50:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":159.14,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"aae00952-e1ff-41e5-bb2f-67e1d4b4f001","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:50:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":109.33,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"34bd7038-fae2-4d32-9cb9-966c1ff400fc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:50:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":614.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:50:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":553.5,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:50:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":521.8,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:50:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.23,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"91122f9c-ed41-48dd-b6e5-5a1276d2fe31","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:50:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:51:00"}
{"durationMs":100.74,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"9c3860a9-ae5b-4b8c-a59e-d6cc16ddf4a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:51:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":107.85,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2141b26f-63ad-4341-87e7-38cc00f0d0d3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:51:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":111.46,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a738dba8-6d83-4822-a75f-872a079c3338","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:51:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":527.3,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:51:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":582.7,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:51:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":582.2,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:51:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.74,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"18a9fd70-0259-44c5-ab43-3572d9c4d06f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:51:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 13:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:55:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80df3c4f-a98b-4a70-860c-77f68cdd082f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 13:59:00"}
{"durationMs":2.78,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"b4802edd-4c19-45ec-92ed-e4e08cd211a9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-02 13:59:30","userId":null}
{"durationMs":3.21,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e9f16871-da95-48df-b2d8-7d44d592adfe","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-02 13:59:30","userId":null}
{"durationMs":3.08,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c882f56d-8916-40fd-b8c5-ad0e0b33cfdb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-02 13:59:31","userId":null}
{"durationMs":152.22,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"36e9a1fa-cbb2-4c82-aa2d-ddf5c92df881","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:59:31","userId":null}
{"durationMs":301.32,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"253ad3d1-8278-4c67-89dc-7260d6fb95f3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:59:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":291.8,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"438d5724-4449-4c65-aa9d-9af702c18db6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:59:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":298.43,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"00120efb-817e-4e3b-85b6-40c639347725","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-02 13:59:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":1262.9,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:59:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1233,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:59:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1543.6,"event":"API_ERROR","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:59:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.42,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6b269437-30f7-4a49-b52f-d4275b7f6ee9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:59:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":674.8,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:59:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":675.3,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:59:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":678.9,"event":"API_RESPONSE","ip":"102.0.24.50","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-02 13:59:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.91,"ip":"102.0.24.50","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2a4875a2-5247-4dc5-8bd8-3ceeb5394179","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-02 13:59:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 14:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:00:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"860b8c79-0946-45e5-9fad-ffbe98f00199","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 14:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:05:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d2f15f32-d903-4433-aae1-a02c2e8decfa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:06:00"}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2f0ddac8-d5ca-4a4b-89f3-167ae6adde74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:06:14","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 14:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:10:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"34f80f3c-54e4-4cc6-9ad4-1eeac352b03d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 14:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:15:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d9c9725-3f71-4eb7-a075-7452955a4233","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 14:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:20:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1afeb7a-7b6e-40eb-a4df-f3c649c24139","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:22:00"}
{"durationMs":2.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f54a3d18-e170-4e4f-82e4-80099b39f321","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:22:35","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 14:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:25:00"}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b9a6dd5-0bb0-42fb-a550-14c89b715898","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 14:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:30:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba5595d4-4bbc-4d34-a3f0-9e22bea2c72b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 14:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:35:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1424d468-7b38-4c20-8370-1ef31e5810ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 14:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:40:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ce192db-5b03-4968-b66a-e61c34f04041","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 14:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:45:00"}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17155d47-a21c-469c-9539-0b43c803dd88","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 14:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:50:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0dbfc834-eabb-4e64-b01b-d16690e40d23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 14:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:55:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3258ccff-d7b4-415c-b342-633cedd910b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:58:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6b27ece-cebc-409c-ba40-760da2ff152a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 14:58:05","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 15:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:00:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6858dbb2-9f62-434f-a7b3-5a47a1547194","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 15:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:05:00"}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73ea47af-fde3-419e-ab9c-84f4e7d968c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 15:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:10:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6253f64f-de65-47c5-8c0c-3ea8a59a43b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 15:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:15:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33cfe12c-8ed9-4d1f-8d99-1b718045f840","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:16:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6c88007-d770-4d0e-a46b-9a04630d0cec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:16:50","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:17:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 15:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:20:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5fb65cf7-1bfc-41d1-b7c9-c5634077f458","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 15:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:25:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c794708-8fe8-4737-b5a7-d1764ebd7ca2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 15:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:30:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee65a225-9601-46be-acf8-c64d102b166d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 15:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:35:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca3bb375-d907-4a15-bddc-0219eaa91a18","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 15:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:40:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45b6847d-fa25-4c62-a28b-edc9c0bbeb33","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 15:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:45:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b83591d8-2d15-49ba-9f15-3a4dab45a99a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 15:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:50:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3045242-ee90-49c4-a8bd-3dedc69504a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 15:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:55:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6af0a6a8-7d28-4c11-9657-05b306ad7c9a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 16:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:00:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7e4d85d-01e5-47d6-b741-d6c460c0a48c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 16:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:05:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce356374-fbc9-4272-b288-ca1438c3212c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 16:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:10:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4523c7bb-6712-41f0-94c6-5b1a016f12a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:11:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:13:00"}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"01aeb137-3c80-4ebc-ad3d-1519497b9498","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:13:27","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 16:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:15:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d15c0cc6-1c59-4f75-a0d3-8e21bbdd952e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 16:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:20:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03f4e9c1-4c3a-4f88-a972-85971af6946a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:22:00"}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e73efce2-7da0-473b-b254-622d8bc9f74a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:22:54","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 16:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:25:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4efd744-ac53-45b1-92aa-d2af7487ad7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 16:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:30:00"}
{"durationMs":1.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b6c3270-0241-4141-a80e-167af3e01cda","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:32:00"}
{"durationMs":1.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2edd0cb-482d-4ce7-a679-8bd2df14f007","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:32:13","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 16:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:35:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fabc418a-f57f-4268-9a17-e0c58e4b48cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 16:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:40:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"26cb60ed-990a-4b28-bb96-6d6e228a8cd4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:40:02","userId":null}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87d4885a-4c19-4d8c-83cc-414d4da476df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:40:13","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 16:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:45:00"}
{"durationMs":1.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2c8a66f-2de7-4071-b6e0-14fd337dd06e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 16:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:50:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"06d752d6-368c-49d2-95b1-e54b647a6f7a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 16:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:55:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2988e162-529e-4dd6-9da9-7a0f2c8d7777","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:56:00"}
{"durationMs":1.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2bd6381-fde8-4988-b1d6-82930b89975e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 16:56:14","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 17:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:00:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d50aec92-cea9-4dab-b042-cb4900bfe53b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 17:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:05:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15123be5-3e1b-487e-be0e-7329d7df9a1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 17:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:10:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f7631de-6059-419a-a0ed-34a2f1c8e3e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 17:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:15:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa4badfb-4405-485f-a7b5-0c9616e5e0cc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 17:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:20:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"045a02c4-53c4-441c-84b5-299e28a326b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 17:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:25:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a5c1e0b-4687-4ee1-9242-72fe47a6530f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:25:02","userId":null}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dec2945a-1808-412f-ad9f-3e007ee4e1cc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:25:38","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 17:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:30:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f533e7b6-8531-450a-88ae-68b7074901ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 17:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:35:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a6ef88f-6380-49f8-94b5-ba5b41d356ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 17:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:40:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a937e214-2e41-499b-aed8-903661e8609d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 17:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:45:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca68b56e-cff9-42c5-9931-ed289e1bb2d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:45:01","userId":null}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5356ebc-fb54-42b0-af5d-3f33d16ed36c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 17:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:50:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e20dde8f-fa57-4cf6-855a-e401e06066d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:54:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:55:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 17:55:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 17:55:01","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b3fcd54-d135-433e-8716-218d9360524d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 17:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 18:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:00:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c0ea108b-d1bb-4e24-90fe-826a9f300d0a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 18:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:05:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df3258e0-3d6e-4355-9ca1-861f53b233ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 18:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:10:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"705fdc6f-d8f6-49a7-9c67-4f28c9626fde","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 18:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:15:00"}
{"durationMs":2.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4437cded-b2e9-40f8-b229-d5d6faccc215","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 18:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:20:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ec9b54c-d875-40a5-9c58-8d55d0cd5613","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 18:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:25:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56b432a8-faed-484e-bccd-f9bc1160b6b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 18:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:30:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92d92729-d609-4107-98a5-20321ba327be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 18:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:35:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f6e03e5-8d16-4e5f-8104-38e54a345fb3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 18:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:40:00"}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61f6356a-1803-4f8d-8aa5-3f8099d60645","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:42:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 18:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:45:00"}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"788f561d-f229-40d9-8695-28b160f27f2d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:46:00"}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2872314d-2d86-400a-9db1-19a8c3502e29","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:46:13","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 18:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:50:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"768b9689-0508-41ed-993a-96e79b35d870","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:53:00"}
{"durationMs":2.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3856ed3-e9cb-4b45-9c3d-f95bdc233313","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:53:45","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 18:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:55:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6915d307-23da-4a87-8b75-f5b319a9a7ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 19:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:00:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0acadd5c-0da4-4e31-8655-8c205933d202","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 19:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:05:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7be589ac-447f-4346-8a9d-8f6ccaf62e21","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 19:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:10:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f2fd109-861b-433a-8eed-eebd401489fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 19:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:15:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"28e20f14-c209-4fba-a677-9cb948f7985d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 19:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:20:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c684af1f-427d-462d-89f6-9d568702d28d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 19:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:25:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98c7b1ba-67ec-4df6-a381-56e09145efe0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 19:30:00","totalConnections":1}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6fe9fd9-4954-4c0b-b7ee-d835346617ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 19:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:35:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea12dda5-08c2-4a88-85c9-60ce6183ea98","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:35:01","userId":null}
{"durationMs":2.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1a81ec2-14b9-4807-ab99-ac96de91f53b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:35:07","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 19:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:40:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d284c6e8-24f0-4e30-9fb4-29c03b016b42","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 19:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:45:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ec582ac1-078c-4f3e-9e0a-02bcf682da77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 19:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:50:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e2084b05-7ac5-4048-9cf9-d29a95f2c1f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:51:00"}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b2aa54e-6a06-4ef7-822b-035c75e2dda2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:51:34","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:52:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fbcfdb1a-8eb9-4b10-ac4d-66605d5535a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:52:31","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 19:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:55:00"}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"258e065a-41b8-47b2-9de0-3b9ff01bc316","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 20:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:00:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"021acdb4-ad12-4971-a570-0ba527569d2b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:03:00"}
{"durationMs":1.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"956a0957-38d1-478d-b655-fc002a6e222e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:03:25","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 20:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:05:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04fa3a49-e964-4659-bc25-b976e75b0fa6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 20:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:10:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a6bb6ec-9c05-424a-b3fb-a38c1dfe26ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 20:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 20:15:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98eb44f3-257c-41a1-9ae8-f3e6f3c034e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 20:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:20:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2111f9e2-db69-47e8-ad34-5980cc6a8c7a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 20:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:25:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8962d0c-d898-475c-a186-1cdd03baa991","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 20:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:30:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7520b972-92bd-4fd4-9479-1549dad4e938","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 20:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:35:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87c877d0-74d5-4677-a9a6-24cf1b8eb18c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 20:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:40:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"28636a53-8f4e-4bef-8054-a7e9dd9680d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 20:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:45:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c4e0a0c0-4e24-49b7-a079-e72b2a3ccf0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 20:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:50:00"}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d9ff8c72-1483-466e-8eaa-b5f87b644241","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 20:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:55:00"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cbd46379-ccc3-42c0-bc99-28e953aa2d98","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 20:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 21:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:00:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"290c2cdf-2060-4059-a7b6-5b0b565db140","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 21:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 21:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:05:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9e05bd0-8ba5-42c9-a779-4803e8bba549","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 21:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 21:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:10:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ef23cf8-ddef-4801-b11f-f0003202f58a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 21:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 21:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:15:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"586e1a81-85f5-4352-a3a2-56202f625e38","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 21:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 21:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:20:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"36510835-04e9-4303-b651-8f5bb1be389a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 21:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:25:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae9719aa-ad02-49b0-b2fd-8f8e12cfc0fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 21:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 21:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:30:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c231b99-aeb9-497a-95dc-dc247ca9553e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 21:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:35:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b3ca126-21b9-487a-a423-e41d02e647b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 21:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:40:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8b2128a-3cd6-46dc-85f3-342fc0dfe336","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 21:40:03","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 21:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:45:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b724f555-d08f-48ce-b72e-239b39de2cf8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 21:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:50:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a74c921c-2b21-4b13-8a97-eaabe0350e2d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 21:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 21:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:55:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62bb4d42-9a5b-4257-92af-5f477dab08b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 21:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 22:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:00:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"36d49ee6-383e-40fa-9725-7b03061ebd31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 22:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:05:00"}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c173150-1418-416f-aa81-4e5f64969a1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 22:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:10:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7cee7dc5-d887-4985-b24a-b077f4d96edf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 22:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:15:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3baeef43-674e-41fd-9968-c2d9b05536ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 22:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:20:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e160ece-90a3-4076-8ccf-921170524d47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 22:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:25:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa379041-1d79-4f59-8f57-8a2661bb5fb6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 22:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:30:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bdc47efd-051c-4173-819a-81eeb94df4a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 22:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:35:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b635706-08e8-4c5f-9dfc-618584011ef4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 22:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:40:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"afba7395-2960-4be6-a1f5-5c9ddd258c20","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 22:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:45:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3596e386-0ff7-4ee5-877b-21eb79ed7c10","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:49:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 22:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:50:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c4fed544-fa4d-4f55-9451-ff71f2bcc8d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 22:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:55:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d5d3702-18c4-49a9-9835-fa8d139fa499","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:55:02","userId":null}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9970aea7-8b81-49dd-a8a1-f7b440a3259e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 22:55:55","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 23:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:00:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05f37746-824e-4a97-8fee-40395f0ace03","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:00:02","userId":null}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"93a15a1f-8b32-46cf-b3bf-0c6c2d8f9f48","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:00:39","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 23:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:05:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df133eb0-f1dd-402b-bcec-ff539dd65e57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 23:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:10:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e8c9f922-d844-4259-9395-c1a090ec6133","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 23:15:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 23:15:01","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2e5b429-06e6-4510-a9ec-0770013dfa56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 23:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:20:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c3f6a18-3df3-4a26-bdd4-abf48f357f04","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 23:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:25:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"509b07b8-125c-4814-9dde-a832d1be4722","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 23:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:30:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f73db0f7-cb86-4368-bd37-66f9ed40c633","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 23:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:35:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f1cd2ce-3eaa-4b00-8b6c-52393dd14bd1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:38:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 23:40:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a4cbdc1-bc71-4f4e-80ba-1a03ebcf4785","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 23:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 23:45:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d14cce0-a913-4f09-a0fc-6ecc108e2f5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 23:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:50:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca92bc2f-a0f9-46df-8a60-dda9dca2692d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-02 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-02 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-02 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-02 23:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:55:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"924c45cd-5896-4265-8dea-3baa01a7e359","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-02 23:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-02 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 00:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:00:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"21cd2432-b2e2-451b-acd8-8eb17e35a55c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 00:05:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 00:05:01","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"289f33b7-14d8-4206-b099-d8d41e01db0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 00:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:10:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b3b0750a-2ace-4ed2-b9a1-d16be4997c52","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 00:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 00:15:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"056b97de-012b-4796-83ef-d658c0388c7f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 00:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 00:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:20:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4538d8f3-f441-493f-9c1a-b7164f2914c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 00:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 00:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:25:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"640a342d-7422-4770-ab6b-bd892f10c5e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 00:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 00:30:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 00:30:01","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24e7fe78-144f-4b23-9e63-12210a22e7eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 00:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:35:00"}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9cdfb32a-4e38-4f0d-ac79-2f15f84c8104","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 00:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 00:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:40:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e270ff6-aad0-419d-a392-5ca4c1c7f1f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 00:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:45:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e27ce503-8bbb-4d87-ac53-3e1b90070f85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 00:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:50:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20b6bba6-dc89-44d1-851f-a0117d873d18","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 00:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:55:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a79d03f9-8130-4f62-bb07-484e749a550f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 00:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 01:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:00:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6b18ad7-b882-4963-b17e-6ce7ff293cfd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 01:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:05:00"}
{"durationMs":2.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40387f0b-dc2d-4de0-8c4e-f2519884b63e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 01:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 01:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:10:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b37c552-0782-460b-a452-ebe6acaa9cee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:14:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:15:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 01:15:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96bf2b73-f939-45b9-a9bd-095ace540c3c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 01:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 01:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:20:00"}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af5ea7da-2e6c-4262-97e3-5d0a6727079e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 01:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 01:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:25:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f7c91b0-d63f-46e3-81c0-d347b4ad22fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 01:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 01:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:30:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0fe6c9e3-bdad-47e8-bd7c-ee5c2986ed1a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 01:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 01:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:35:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b5fd280-2c09-406b-bb6e-771086c49b97","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 01:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 01:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:40:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"875c530e-7433-48dc-b703-669567d655fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 01:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 01:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:45:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f0305a5-e044-444a-896b-e21b03004138","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 01:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 01:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:50:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7122d611-d9a9-4ab6-87f5-8448da7a1ac5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 01:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:55:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"084688a7-d8a6-469a-af28-be1dc19485ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 01:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 02:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:00:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b8116ae-2cb3-4e4d-a305-889970a348fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 02:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:05:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e4105a6-51d1-4856-8b5e-528b6447e0b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 02:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:10:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"64cfc6a9-e185-49cf-869b-fe1193d14e61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 02:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 02:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:15:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3775dd7c-cb40-4ca6-997c-7f84cc7808b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 02:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:20:00"}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71330084-6e7c-415b-830a-6840e8313a8c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 02:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 02:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:25:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e71ccf11-5acf-4730-afb1-8fbaf8721b09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 02:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:30:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dd95e21b-4033-4652-a0de-77a8de0108c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 02:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:35:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"55a5f238-4008-4864-adb2-94225e07cdd1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 02:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 02:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:40:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e9530d4-4271-450f-a8a7-ed37c769b15f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 02:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 02:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:45:00"}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0842f145-7af3-43cb-97dd-d98bf4e68330","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 02:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:50:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a100566a-826b-419f-a68d-c43aedf97314","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 02:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 02:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:55:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"895869b6-c82f-469e-88ec-212165becd32","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 03:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:00:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"edc7c2d2-06c7-49ec-9296-a8bb6d15bbb2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 03:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:05:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2cd92d4e-9ef7-4cc8-a79a-4a1100b172d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 03:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 03:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:10:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4f748792-2fa1-42f9-9702-1d9f8d6a4f9e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 03:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 03:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:15:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"907066d6-5689-4c03-9dcd-b81f5e60d728","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 03:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:20:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1d032bd-412f-454d-827f-4db063aac13c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 03:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:25:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c02ee61e-9cb5-46db-9ed8-a195ae0b3920","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 03:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:30:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0fb855b4-8136-43d1-a08c-6d61a0195bdf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 03:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:35:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7cf55e98-00e1-4811-91e8-fbd84562e950","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 03:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 03:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:40:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5c2ca7f-14c3-46e3-a7dd-1117998037c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 03:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:45:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"548ec808-b383-453a-b35e-6cae236766bc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 03:50:00","totalConnections":1}
{"durationMs":2.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9925d8f9-cd45-4588-aace-2f032d63c86b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 03:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:55:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ec5e477-50a6-464f-a4d9-9810fc3d97b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 04:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:00:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ca238d5-e39e-4c9d-a4e1-fb5d5be64537","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 04:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 04:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:05:00"}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"614eb14d-f9bc-4c9b-96d4-792009d606ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 04:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:10:00"}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe3f0997-12a6-4791-bce7-e0f5ab1a1fcc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 04:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 04:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:15:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e81f60c-c651-4989-ad25-a918651f389f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 04:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 04:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:20:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"07ac9960-2cf9-4201-80af-3d70d9ec15c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 04:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:25:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ccc22e37-432d-4b96-8326-f1c6a85d732b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 04:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:30:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc4e3ee9-8ce1-406c-a924-2e30fd9cc640","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 04:35:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bbf2daba-cfed-4333-8b44-233752b36633","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 04:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 04:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:40:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e89396f-9507-47ae-8fb8-058963d506a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 04:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 04:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:45:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b182f069-0f24-4fce-9e87-a96ecf57a356","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 04:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:50:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80c36e42-07d7-4244-b1b3-217196270d6c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 04:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 04:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:55:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0955e650-88c1-4866-a874-0a9becdb98c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 05:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:00:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"feae22ab-ff6a-44cb-b6a6-12ef0cf17f14","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 05:05:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13fc7c10-0800-4986-9a9e-7b5049803cc9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 05:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 05:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:10:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82c5ef40-fe57-42bc-bb69-6690c0a99630","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 05:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:15:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46e5fb0d-5aa3-4260-960e-26f1c8cd19bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 05:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 05:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:20:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"86c5639c-611e-4c56-89b9-1e41c436b889","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 05:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:25:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ad3d1c8-9047-4125-94a7-64d757cfad23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 05:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:30:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"68db050c-b0d4-4755-b96f-128f77685b08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 05:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:35:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2a93787-ec61-4e23-9fe5-12faae0fe3ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 05:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:40:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9b9644c-aa34-4116-afb2-286c879147bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 05:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:45:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd8e0897-9dce-4272-b348-092805a6a72e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 05:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 05:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:50:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3beda953-eebf-418d-b80b-08c53b7039da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 05:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:55:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff4be8b0-e838-4aec-ac20-d02a3699b2ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 06:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:00:00"}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca6ee070-ca6c-4c93-8187-e7a438e40c6e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 06:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:05:00"}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"556b4ad8-3c5a-42b9-b0b8-92e0ea3db635","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 06:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 06:10:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1badf93-42a4-4ba6-bfe6-aa47c9e285e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 06:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:15:00"}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb5fb833-2a14-47d5-9450-4912310b71e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 06:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 06:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:20:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6b6e51d-e2ce-4eb4-80a7-ca38a49a3318","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 06:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 06:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:25:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ed76f793-94d1-44a6-8eac-5d87f0a0b8b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:28:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 06:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:30:00"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2bd5f069-9f8e-4344-acf0-40d669b2d59a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 06:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:35:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c22bf9d9-499a-42c5-b620-07eb44200e3f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 06:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:40:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76103ed7-32dd-4e3d-b14d-ce873dd11b61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 06:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:45:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e0f30155-c215-4026-a614-0058fd272039","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 06:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:50:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc102907-2c80-4402-b5a1-ac9c8fcf1da6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 06:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:51:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 06:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:55:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8f2aa3f-7a47-4f9f-bcda-21629909a930","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 06:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 07:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:00:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1fede8e2-26e7-4d78-902c-a50cb1440d51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 07:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:05:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e195ca99-d537-44a0-9f10-44f8978ecf0a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 07:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 07:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:10:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17a11d11-122a-4cef-ad6c-1acabff9c509","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 07:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 07:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:15:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9cdcaf27-3404-4552-bb4b-9cdcf28b2eda","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 07:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:20:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"01b24aec-b0b6-4d9e-8dc8-1b6546f744bc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 07:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:25:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d1e3b5c-484d-471c-a269-78eb3cd5af02","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 07:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 07:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:30:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f80de8e8-cb3d-4bac-b14b-5c6ebd4b53f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 07:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:35:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1264b13a-2514-4319-bb78-9172a8b2a3d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 07:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 07:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:40:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"47251d4c-9828-438d-944b-819240a78950","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 07:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:45:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6977370-9605-48b1-84c3-ff019d18129a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 07:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 07:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:50:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48bb4ce8-de9f-411d-b3f0-37789ea80901","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 07:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 07:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:55:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9dbdfc60-3ca9-4c01-8440-73eaafe90b1b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 07:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 07:59:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-03 08:00:00"}
{"level":"error","message":"[CRON] Library overdue check failed: Cannot read properties of undefined (reading 'findMany')","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findMany')\n    at cron.schedule.timezone [as _execution] (/home/aereuxky/cbcsms-backend/src/jobs/library-overdue.job.js:14:56)\n    at Task.execute (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/task.js:17:25)\n    at ScheduledTask.now (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:38:33)\n    at Scheduler.<anonymous> (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:25:18)\n    at Scheduler.emit (node:events:519:28)\n    at Timeout.matchTime [as _onTimeout] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduler.js:30:26)\n    at listOnTimeout (node:internal/timers:585:17)\n    at process.processTimers (node:internal/timers:521:7)","timestamp":"2026-09-03 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 08:00:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-03T05:00:00.116Z","service":"cbc-sms","timestamp":"2026-09-03 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 08:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-03 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-03 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-03 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-03 08:00:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96dce6ed-9c7c-40b2-b157-08d7ea0ecd6e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 08:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 08:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:05:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5b5653a-4470-4f28-a222-5ac6d2fc3155","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 08:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 08:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:10:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"383e97f6-672c-4b4f-ae53-ac606fce6732","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 08:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:15:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"26c21d75-ec36-409c-af51-b3ef233d8755","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 08:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 08:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:20:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c0317956-4030-4e55-aad8-29306885eec3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 08:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 08:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:25:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c946bc7c-336e-45d5-a82c-30d341b6ce3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 08:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:30:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0885da75-07bf-4f21-9932-6827497ea310","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 08:35:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"317b5bc7-32fe-4b05-817d-4b63814d93e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 08:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 08:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:40:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c697c1ea-b42d-4d23-9480-fff46e6d6a97","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 08:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:45:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c373a72-0edb-4bd2-8a5e-28c9648cd3d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 08:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:50:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67ecb205-3fb2-4be7-a7a0-33d5b2a66202","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 08:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 08:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:55:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"716b4a0f-c2d7-42b1-9e7a-02a1d2c08b99","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 08:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 09:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:00:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"32dcac93-f28b-4cbb-af25-311a5725196a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 09:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:05:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e5cc8d7-0b45-4915-a953-6789ba9b8ef8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 09:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 09:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:10:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20721794-4f1b-4780-a09d-7537d9853497","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 09:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 09:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:15:00"}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0491e7e3-dd85-4720-a4d8-aa72574053ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 09:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:20:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d74f76c-caf5-4f73-8ec2-667fae32a939","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 09:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:25:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aec4dfb4-2753-4a2a-8d47-9a30e6770bcc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 09:30:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-09-03 09:30:00"}
{"level":"error","message":"[CRON] Attendance alert failed: Cannot read properties of undefined (reading 'findMany')","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findMany')\n    at cron.schedule.timezone [as _execution] (/home/aereuxky/cbcsms-backend/src/jobs/attendance-alert.job.js:19:53)\n    at Task.execute (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/task.js:17:25)\n    at ScheduledTask.now (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:38:33)\n    at Scheduler.<anonymous> (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:25:18)\n    at Scheduler.emit (node:events:519:28)\n    at Timeout.matchTime [as _onTimeout] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduler.js:30:26)\n    at listOnTimeout (node:internal/timers:585:17)\n    at process.processTimers (node:internal/timers:521:7)","timestamp":"2026-09-03 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 09:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:30:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22d36726-1317-496d-920c-b76927e16da6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 09:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 09:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:35:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9d0f125-fb50-4696-ad94-f9aa6784b33c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 09:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:40:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5fe382e3-a022-45c8-9826-1ecc7b335d47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 09:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 09:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:45:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc2bb4c3-93ac-4370-aa6d-1609d38871d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 09:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:50:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b02fde2-a175-497b-a77f-6eddf2841b26","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 09:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:55:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd59b9ec-8400-472c-801a-22e42f65f9a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 09:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 10:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 10:00:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9567bcad-38c6-4d39-bbc2-762867610615","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 10:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:05:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"427894f2-c383-4a8b-b56f-b30b2425d02d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 10:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 10:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:10:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5794052-d316-4db0-b2cf-1cafbd6e1a42","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 10:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:15:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"60f94d59-0b17-4b5c-986b-9eb8de83016c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 10:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:20:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"081af062-6570-48b6-bba9-0f695ca49f2f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 10:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:25:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6afbe2cc-15d8-47c1-ab70-3c8ff899d8be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 10:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 10:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:30:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5828ea8-9463-4df6-a65d-18a2df36dea3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 10:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 10:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:35:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"912d627e-0df1-4c3a-a2b7-6accf5bfd594","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 10:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 10:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:40:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14aae782-ed42-44f6-8fc9-588e1e934fc1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 10:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:45:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b50d7712-ef53-4354-80da-6ddbe22748d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 10:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 10:50:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"028dc42c-04e4-4ee9-b27b-3495c0fac652","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 10:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:55:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d1fea94c-29be-45ca-a440-12f582284656","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 10:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 11:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:00:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4f0ce722-d06f-4492-a68e-7320fc75c345","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:01:00"}
{"durationMs":38.86,"ip":"157.123.74.107","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/session/properties","requestId":"62730ba1-c321-40db-b82f-f5144783bedc","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-03 11:01:12","userId":null}
{"durationMs":2.18,"ip":"104.235.223.52","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/session/properties","requestId":"bbf7c6ab-493b-43c1-9949-9ea1c41be366","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-03 11:01:13","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:04:00"}
{"durationMs":1.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b99853e-eaa4-4702-9f8e-3c8eef999275","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:04:27","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 11:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:05:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"070efa5d-868b-4df1-b140-928d4c4411ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 11:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:10:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2157c0db-ca25-4426-b9a5-b127ffb7f058","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 11:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 11:15:00","totalConnections":1}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ffde4a6e-0bc1-4e78-bcd7-7ac82675243a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 11:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:20:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa937559-73e6-4441-bd14-40162a3da914","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 11:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:25:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15d4cb9c-1a21-4054-8178-149b7fd91540","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 11:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:30:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dcc1134f-5654-4250-916d-9c613b81c4ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 11:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:35:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc2026e2-b536-470e-a690-c611c5b1a40f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 11:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:40:00"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4887e1ba-4c2a-484f-83ab-e294dc72468a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 11:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:45:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3307599f-29e0-438c-9d3b-da29b8e2433e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 11:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:50:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"337c147b-a36b-403f-8e41-ec167b21e199","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 11:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:55:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bdf9ab3c-41b8-4123-b9f0-c243adc98011","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 12:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:00:01"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44c0c13c-b6a7-4e21-bb4c-e9db46b966da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 12:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:05:00"}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b3b8bb2-6eae-41e1-9ec5-7e10ca9a1fbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 12:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 12:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:10:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9631f6e8-b6d0-4558-b2e6-8d02751b084d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 12:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:15:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9e9f048-e10e-458a-ae64-904d4a5592d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 12:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:20:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b745f1fe-bc53-4d6d-9ba9-9011996279f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 12:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:25:01"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25849e2e-4fc9-4b2c-8b1d-04c8ed6aeee2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 12:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 12:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:30:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e9913bf-9c3d-4fb7-9947-0ef6839b3cd2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 12:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:35:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61731441-8a6e-49c2-a446-fa58f520f90b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 12:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:40:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"908d006e-8179-4638-b1ae-f52aa97f1f83","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 12:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 12:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:45:00"}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"162789da-0637-4b21-9d76-4a584f50fad8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 12:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:50:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92a25d13-b682-4a85-b5b5-b7dbb94440ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 12:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 12:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:55:00"}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f65d7c46-d402-4f18-a2eb-e20417c88204","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 12:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 13:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:00:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc94ab78-6fa0-4fe8-87f1-36efaf1bd4aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 13:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:05:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41c4ee1e-7afa-4d92-b603-3374517dfe55","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 13:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 13:10:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"405b9420-9b72-4284-a3db-50b562d75c24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 13:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:15:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9483864-b992-45b9-a10a-b12b1e67e1e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 13:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:20:00"}
{"durationMs":9.7,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d9ada5f-26ad-44e9-8cd3-d494c318bb05","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 13:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:25:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ad33af9-2ec1-4cfa-a9a7-550c35c4175f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 13:30:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9893d5ed-cddf-47dc-a629-39dda455ceee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 13:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:35:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3ca3ae1-d59f-463d-8a06-827309d77f38","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 13:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:40:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0893b7e4-4ea3-42e9-b32b-1cfc73efc5db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 13:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 13:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:45:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"936cc20b-80f7-4efa-a35f-ad606685cbc5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 13:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 13:50:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73ba18d9-4a01-4f7a-b47d-31f2678438aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 13:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 13:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:55:00"}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"681697c8-a88e-40fd-b440-afc0e34c1ac6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 13:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 14:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:00:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0d9c301a-bf8a-4b0c-869c-90c53e5b8af2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 14:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:05:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d9960225-9020-47df-855b-9754b7311778","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 14:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:10:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61b3eaf8-5106-4de7-945d-014ac4fb2fd1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 14:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 14:15:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b66abc18-5184-4182-8aee-449e4e7ec098","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 14:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:20:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8dcb7bbc-f3ab-4fe6-8728-217c9a37ea3a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 14:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:25:00"}
{"durationMs":2.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"678ad8f1-92b8-426f-88c6-f04ca9577209","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 14:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:30:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"89a38ad4-5c1f-473a-ba2e-3c65822b43a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 14:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:35:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea2df21c-c62b-40a1-96ac-025bdf8017a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 14:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 14:40:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4ef9962-4d13-4029-80f0-9dc9ff46f20a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 14:45:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b125324-d282-4f36-88c7-bdcfd86a714e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 14:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:50:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62265c35-469a-46d2-9bbe-da8ff53f2dc8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:52:00"}
{"durationMs":1.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74f85f6f-d0a1-4d34-8575-40ed9ec4956d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:52:19","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 14:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:55:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"708278e9-baa2-4dbe-acab-8c05788e8656","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 14:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 15:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:00:00"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4f9b821a-4010-416e-8f03-4d4467fb9cef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 15:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 15:05:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3673bb42-8337-415b-a28b-2bf386118135","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 15:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 15:10:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f09be1d1-ad7d-4651-8e0b-cf1c77e8aa21","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 15:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 15:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:15:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ee1ff8b-054b-4e95-b7be-8da94aa176fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 15:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:20:00"}
{"durationMs":1.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74ebdc13-055b-42ed-9a73-09404e151f23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 15:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 15:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:25:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d6e3184-74c6-43f5-8545-330599497957","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 15:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 15:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:30:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"27d816c5-d414-4476-b7fc-dfd8b330ac16","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 15:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:35:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2b3da170-e328-4a9e-91a7-ec0d8fed1182","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 15:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 15:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:40:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84a644f5-106c-4f5b-bc36-65df8e8a84a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 15:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 15:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:45:00"}
{"durationMs":0.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56892f78-c0ac-4cf5-9b83-5d47716d4096","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 15:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 15:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:50:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7fa5986-8304-4b5c-9ea3-75eb090953f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 15:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:55:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10023a7a-0430-4d33-a6af-df5d9903fa56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 15:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 16:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:00:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0aa77c13-92fd-406c-901c-32681b36f147","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 16:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:05:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3fe17d3f-c7bb-4ec4-b36a-df4cce226242","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 16:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:10:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9477dba-ac98-48c9-81a1-7b486311fadf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 16:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:15:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4abbac49-eb25-46b7-9103-705eb170b27f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 16:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 16:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:20:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ded9ed5d-e779-4c51-bfb8-4f7698d38a9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 16:25:01"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 16:25:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 16:25:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 16:25:01","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0cb27134-2f68-4a36-8637-904608fe222e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 16:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 16:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:30:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba169712-583b-44f2-93c8-da241e73ad66","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 16:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:35:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b53a7cb-c708-411e-a757-9b9c18928686","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 16:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 16:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:40:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d9de71cf-7323-4ec0-81af-6c149f94ae24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 16:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 16:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:45:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cda35d57-bf4e-4b7a-8f6c-9008a9187a51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 16:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 16:50:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 16:50:01","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ec2b485-7854-433f-99e2-a8825e77fcea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 16:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:55:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df7a2d6b-08d8-4106-bc12-ad058017a4ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 17:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:00:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"789e25d7-3548-4211-bf6a-25dfa6a9eeda","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 17:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:05:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5069fdd-8bba-4980-9f1e-fa279c3238fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 17:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 17:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:10:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"121c8022-651b-4e07-ac89-544c962dadec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 17:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 17:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:15:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9de0ed95-0c70-46d9-8a0e-95c897077fd8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 17:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 17:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:20:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7ea00c4-83c8-4757-9974-69eb69ec32ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 17:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:25:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a67069c8-917a-4221-8562-e0dc20e94016","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 17:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 17:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:30:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91aec385-17a0-4f9b-8e56-7123466d0c09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 17:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:35:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04f9d4a6-0e4d-416a-8457-f2cd99e492b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:39:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:40:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 17:40:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c2b7fec-9bf4-40ab-918a-35313a7ad583","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 17:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:45:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0629b3fa-6041-4a8a-8a07-d5b3613f8a1a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 17:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 17:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:50:00"}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f47f2c3d-0603-4b93-97e7-d4d24caa769f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 17:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:55:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6ed33e1-2df3-4984-859e-a1eb13b03076","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 17:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 18:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:00:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fff5e277-1893-4af1-8488-a46400c9c22a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 18:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:05:01"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82efd848-ee61-4431-adb3-641dfa3b4c33","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 18:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:10:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2e7acf0-a8e1-4935-8ba8-fbb0db54cf8b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 18:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:15:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b27b4a8-53d9-456b-a947-e510136f8446","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 18:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 18:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:20:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"370374d6-0eda-43e4-a2df-e3ce0bf789c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 18:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:25:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"464df2fa-aaa8-45c9-8f74-0a9a563e494f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 18:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:29:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:30:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 18:30:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1694ac99-3292-4d17-a1ab-a082e2d13fcc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 18:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:35:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6e62b9f-9e4f-4770-ae23-b489f420e858","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 18:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 18:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:40:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ff0f375-cfdd-4d10-8b33-ca131268efaa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 18:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 18:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:45:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75637306-909b-47db-b6c4-2f67cbe25959","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 18:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:50:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ecf011a-6f18-4e97-a9a8-b443566cf2d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 18:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 18:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:55:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dbef35f7-f0d9-43ca-bfca-f93d0116a265","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 18:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 19:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:00:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe4f97a3-26a2-4571-a3a7-58d5b54e8a33","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 19:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:05:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c7240fb-8228-4e57-814f-3a22e131360b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 19:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 19:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:10:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f43baa0b-323f-49d6-92ab-d5318b4a0ab3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 19:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 19:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:15:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea1ff472-f7b8-43ab-ad33-f591f9bb4baf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 19:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 19:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:20:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd70a0bc-1bba-4749-9108-81e74542c578","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 19:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 19:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:25:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4ec02ae-3011-4018-afc4-d97f649da52b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 19:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 19:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:30:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bcb84067-3395-4bcb-b577-1f83c5c92cb2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 19:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:35:00"}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"729c2b85-ef16-4a53-9245-7fdfaa63eb16","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 19:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 19:40:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 19:40:01","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:40:01"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fbd8a6a2-777b-449b-adef-5b17d2f34c9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 19:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 19:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:45:00"}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ad49470-e37a-4b18-a452-ebffe4db9b89","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 19:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 19:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:50:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bda84e17-f605-4d76-b75c-1eafed44c428","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 19:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 19:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:55:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"30ad710d-dfb8-4c2f-8e7d-1cfd82b0e975","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 19:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 20:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 20:00:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"755ffc0f-a9b8-42ba-8404-064490969f73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 20:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 20:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 20:05:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a5eef1e-7a28-439f-bf2d-7fccd0bafb19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 20:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 20:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:10:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ca5595b-0439-4a33-9e9f-98b77a354ba5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 20:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 20:15:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae2bf04a-c4fe-4fe8-95cf-7e7382e62ef4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 20:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:20:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5621f501-655f-47d3-8dc9-5fda57b01d5b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 20:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 20:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:25:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98009762-4484-412a-a3b6-bf73b07ab9ef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 20:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 20:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:30:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c77f464-81e6-4cd9-b2db-a376d0478749","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 20:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:35:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96918a4f-9f59-4b6b-8422-aa7cf802eb0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 20:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 20:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:40:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b01c57c-a03a-4fb0-b25f-a322f01fab1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 20:40:04","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 20:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:45:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24c250a6-3d37-4807-81d5-5e6e8a6f7390","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 20:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 20:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:50:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d64c1cb4-78a8-431e-8ea6-60caa932538c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 20:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 20:55:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8666d546-9152-4cb4-8074-e064162019e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 20:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 21:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:00:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a68ac102-5fbb-4a2d-af6a-eba567bb9981","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 21:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:05:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e14f0a44-917e-43ba-a391-9fdf6f865ffc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 21:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 21:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:10:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2769c18-2837-481c-876a-5a91092b4693","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 21:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 21:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:15:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"debcdd58-2627-423f-9578-a3e9d198414e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 21:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 21:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:20:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef07432a-22d6-41ce-b2fb-4f293dcf1b63","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 21:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 21:25:00","totalConnections":1}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba911377-25a1-40ca-b72e-3c86243476eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 21:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 21:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:30:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04b92162-42ff-45b4-a269-6e3b6812efa9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 21:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 21:35:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66ea2bed-66b3-42db-aabc-354a4c6ae10b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 21:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 21:40:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"528824d4-1271-4050-a16c-a171f828e85e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:42:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 21:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:45:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ef6d0e6-cc05-4bf3-bd75-e639d5056fdd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 21:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 21:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 21:50:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"472a2551-8356-4f4e-966f-74b33539d9bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 21:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 21:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:55:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ec1e0e8f-c31f-4db4-9365-0cd1c198c704","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 21:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 22:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:00:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"152858a6-87ee-410b-9843-53052222c6c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 22:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 22:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:05:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67e8cb24-2fc4-4a1f-8291-f91a5f465c19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 22:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 22:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 22:10:00","totalConnections":1}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e0fa7854-0810-4637-86f1-3f5976c49b9f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 22:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:15:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d38c4674-27fb-439b-bebc-c35ad094c7a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 22:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:20:00"}
{"durationMs":1.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1495dd4b-a3e9-40fc-9a23-4447eef06c92","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 22:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:25:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"308567a3-9adf-4bb3-aa36-76ad81ea35be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 22:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:30:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9300cb32-77d8-4d58-958c-a962fb059b28","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 22:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:35:00"}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b727d91e-a6b7-419e-8c93-9d5364c5e002","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 22:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 22:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:40:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"698a8819-9ec8-4c49-803a-95c763382a56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 22:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:45:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c39e9b16-7b18-4f86-a950-9e6ab0082b26","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 22:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 22:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:50:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c9284be-6189-48fa-8404-52200acbbca3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 22:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:55:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2cd7b260-f16b-417c-b328-ae14fef0b038","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 22:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 23:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:00:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb6a4cd0-cec7-4326-8a49-88269feeb6d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 23:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:05:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1dc6b5c1-fc69-45f3-a13b-477ff0d47655","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 23:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:10:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8561ae8b-1a41-4240-abd0-e5c86a9eec4a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 23:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:15:00"}
{"durationMs":2.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7bec253d-4404-4852-b611-f78f0d144a8a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 23:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 23:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:20:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98ba279f-9809-4144-9a09-ee15dba4f015","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 23:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 23:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:25:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f85e2889-89e2-4009-9c5a-7ba384c4b275","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 23:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 23:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:30:00"}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7628b6e3-3c35-4f7a-a852-94d0c7371b87","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 23:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:35:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"647ec089-7ae4-498b-b9f6-da0235d6d558","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 23:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:40:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ece3add-9f05-47d1-8ce0-b3b9c9d820dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 23:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 23:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:45:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5da891c4-ef25-43e2-ad2e-c321538f2d19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 23:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 23:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:50:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8bcef847-9e05-4a91-9053-dc2a9c1d7533","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-03 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-03 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-03 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-03 23:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:55:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"955c3ab6-754b-47a5-84a6-f0e13296524f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-03 23:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-03 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 00:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:00:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b657e0b-78b7-4d42-9e96-926cfe66d163","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 00:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:05:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be70b34d-4f15-4314-afc2-fc65cff041f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 00:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:10:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0ec33bf-d684-4e92-956d-85465e58b96a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 00:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:15:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fefdf2fb-0bd6-4f79-972d-e4ff841b7739","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 00:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:20:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f6f37ce-00f3-4381-b3e7-1f8030771455","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 00:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:25:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9a555e0-5f12-4f85-bdc0-3e612e8d1dca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 00:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 00:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:30:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4790d69f-0ce1-4442-9bfa-b2d0d7022e00","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 00:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:35:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25455a1d-519f-4777-bd66-b1dd3f13d046","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 00:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:40:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a57ab717-7d21-4b55-8bb3-1d5f28b957c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 00:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:45:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"68165259-06bb-4ba0-8308-b84ab63e37aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 00:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:50:00"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5789f703-42f4-49e2-a134-812d0ed532a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 00:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 00:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:55:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd00fb8c-bc96-4e1c-810d-a7907652f51a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 00:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 01:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:00:00"}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e765bded-acc7-4c24-aa17-c6f2a7d2a4fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 01:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:05:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"916fa165-388e-4671-9f82-357a0366c614","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 01:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 01:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 01:10:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"adeac26a-4e9d-42aa-8c49-a228a2d75816","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 01:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:15:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14aed7f1-2334-41ba-8568-4973590c9c1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:19:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:20:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 01:20:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e74f7c7-638d-4565-b00a-ef80e91515cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 01:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:25:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5847c439-1d50-4f7f-88c7-d6f9d59ff336","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 01:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:30:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb9683f8-4031-4c83-a19e-ca05fd80ae3f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 01:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:35:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a90550b3-caaf-4851-b987-cb9a4c8cdb04","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 01:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 01:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:40:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04c56d8a-b396-4e3b-9399-cacbe54e7e83","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 01:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 01:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:45:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6756e14-e444-4a93-a727-1d4ff2c94211","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 01:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 01:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:50:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2f98f722-564d-407b-9eee-c63f9a00c4f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 01:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:55:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fad407ec-eb2d-4421-8131-fea9cfa7c31c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 02:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:00:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e319e16-4ded-4cc3-af60-1069e8019354","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 02:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:05:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d1bad9dc-81e9-4104-91d0-259200c8d9f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 02:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 02:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:10:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51fd325d-6fe2-41d9-a01b-b8f52514acde","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 02:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:15:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8474172-7a93-4665-8d73-740eb9760f65","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 02:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:20:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad74872e-ca99-4286-8d62-0a5836a7bdb7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 02:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:25:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7de66179-c3cb-42ec-8d97-78bd174f0f2b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 02:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 02:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:30:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1c542b9-8027-4926-aeef-87cd4b1a6135","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 02:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:35:00"}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5d9cc90-07ec-438e-b9a3-0dc809cc1f53","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 02:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:40:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d291ed3f-6d1f-42b0-86cf-1521d60bf71e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 02:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:45:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e30595e6-9906-4163-903a-cbd63425a391","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 02:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:50:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b591ad56-37bf-4ec9-a9c8-9b62c825033a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 02:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 02:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:55:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51b7ce51-595c-4a38-b38b-a60c6b2673c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 02:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 03:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:00:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae117122-64a2-4776-b624-b7d613945d69","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 03:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:05:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a01d0de7-b984-47ff-942a-cdedbfffb0d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 03:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 03:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:10:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ee8f3a3-4ecd-4ed9-baa0-7c85c77d7fb4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 03:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 03:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:15:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7f993d3-64d0-45d4-8802-58d49104018f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 03:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:20:00"}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad7d4294-bce3-43b0-baa5-59375ae162e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 03:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:25:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"94d42ade-b03f-41ec-8a02-448bde644260","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 03:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:30:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d595d56-c4ea-444f-94d0-cff20248b56b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 03:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:35:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8dfbce4e-ae0d-4488-bfdb-fbd9417ee0b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 03:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:40:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd60e9b8-3d2d-4ff1-9c30-ba02d38123db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 03:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 03:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:45:01"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2f55edf-d2f7-49a6-bddc-516d677c282f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 03:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 03:50:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"93112230-9dac-44c4-9d61-8a7ca11a2ba6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 03:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:55:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc5abbef-77a5-444b-83d4-b386a29be654","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 04:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:00:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c58796b9-0c9c-461b-90df-18323089fb5c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 04:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:05:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03144d6e-f7ea-4925-b917-9fac81f3a347","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 04:10:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ed8d71d2-f126-4f76-ab29-115f0ddcb2bc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 04:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 04:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:15:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66662f45-a33b-423d-9503-16909709be73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 04:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 04:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:20:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49543301-b0ff-460a-8e4a-69280ca53315","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 04:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:25:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4adaef23-ef32-4831-b311-11b292b0cbae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 04:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 04:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:30:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c000c157-48a6-475d-8ab5-a651de0f4f3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 04:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 04:35:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"659f2bae-5dab-4281-baf9-eb4dbd47be14","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 04:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 04:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:40:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e103d8d3-36de-4583-a68c-25a42e16eb7a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 04:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 04:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:45:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8ea5a69-5ab7-4c34-82b0-16a99e12794c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 04:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 04:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:50:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d9c87d66-ca8a-4be2-9fb9-cea0aec36d39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 04:55:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a1423b0-bb60-484c-ae28-099e7bfa5c60","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 04:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 05:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:00:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d22f77d1-baeb-416d-9f20-a3bd0234094c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 05:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 05:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:05:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44aebedb-beb7-457e-84e0-552ffbbdd59d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 05:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 05:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 05:10:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1452a5d-4e38-4e7e-be3b-f567f2588d62","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 05:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 05:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:15:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72a596ff-1d52-4c1b-97c4-976b95a065ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 05:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 05:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:20:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0c1ef9a4-0c07-44a4-beff-5d74439f9343","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 05:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:25:00"}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9629c38b-186c-424b-8d8b-be3447904594","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 05:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:30:00"}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"094376df-19b5-4614-a056-789f4ee40221","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 05:35:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"353a5762-7e50-4104-8af7-07e04bedb5f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 05:40:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d98f0259-a3d3-4e9f-a4dc-2fc355d062a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 05:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:45:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"38524609-348a-4fcf-929f-793bfba9f4f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 05:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 05:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:50:00"}
{"durationMs":1.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"550dba9d-5650-4967-9dc6-164e2453185c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 05:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 05:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 05:55:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c73309b3-876f-48b5-8977-31dad050ef4a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 06:00:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"977e5038-4aa1-48cf-a0f7-5c03ac7fa2f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 06:05:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d502daf7-de2f-4e4f-9093-287bae6e83ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 06:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:10:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f760e885-601d-49b0-bcb4-42fb7546a4a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 06:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 06:15:00","totalConnections":1}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ec5ce9e3-1c55-40f1-a395-6e85024083e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 06:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 06:20:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70b1991b-e5a2-4e75-9fb8-e8f9fb184601","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 06:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:25:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd106809-f523-4ec0-84d6-ab9c766bfc36","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 06:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 06:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:30:00"}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ef92548-33ed-4ab8-9b7d-c75c1659cfae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 06:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 06:35:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"52f7f4a1-8143-42de-8989-d10db5106834","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 06:40:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"021104b1-b545-4065-9394-684deef30010","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 06:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 06:45:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2fc3ec11-ff71-483e-b535-4f6ffd901830","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 06:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:50:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4876fbd-0306-434c-a18a-4d3a83141ae5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 06:55:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5882fbb-c8a9-44ab-a0d8-f775d202a89d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 06:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 07:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 07:00:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da0a22cf-46ae-43e6-bde3-f882e7de3078","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 07:05:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"512fbe2c-3cea-47f4-9488-543567a7094e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 07:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 07:10:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6296914d-7232-4a3d-bde8-8df9cfd0a8b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 07:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 07:15:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7fa1524-6afb-4d42-982d-851a19aa714c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 07:20:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"78edb401-f635-4003-9fb1-caf67a65850c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 07:25:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"78b0c0fa-d6e5-479a-9aa2-656d60ef205b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 07:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 07:30:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9fedd935-5df9-4dc0-9879-1eea2c1aca47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 07:35:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef0bed9b-6e95-4230-a342-386d6e1c318f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 07:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 07:40:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"32ea9401-282c-445d-a98f-d0cb46795a4e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 07:45:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0c3aaf1-b687-4306-b0f8-787e63cebca9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 07:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 07:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:50:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1005df42-49e5-42c6-b578-bfd37d31e2b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 07:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 07:55:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0032ea5-2453-4f60-855e-25f54bc759c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 07:59:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-04 08:00:00"}
{"level":"error","message":"[CRON] Library overdue check failed: Cannot read properties of undefined (reading 'findMany')","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findMany')\n    at cron.schedule.timezone [as _execution] (/home/aereuxky/cbcsms-backend/src/jobs/library-overdue.job.js:14:56)\n    at Task.execute (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/task.js:17:25)\n    at ScheduledTask.now (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:38:33)\n    at Scheduler.<anonymous> (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:25:18)\n    at Scheduler.emit (node:events:519:28)\n    at Timeout.matchTime [as _onTimeout] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduler.js:30:26)\n    at listOnTimeout (node:internal/timers:585:17)\n    at process.processTimers (node:internal/timers:521:7)","timestamp":"2026-09-04 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 08:00:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-04T05:00:00.300Z","service":"cbc-sms","timestamp":"2026-09-04 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-04 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-04 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-04 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-04 08:00:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23a26c06-9157-497d-9b2f-6df67cd15937","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 08:05:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04512e60-b3f7-4f8b-a0f8-641351d9665a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 08:10:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66ad7307-d74c-499b-adf6-215404c3d5ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 08:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 08:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 08:15:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9870c55a-084b-4f25-819d-b53d8c2865d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 08:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 08:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 08:20:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"762d322e-cd22-4229-a1de-95c6a8cffcf7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 08:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 08:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:25:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3eff19ef-e5ff-4a87-9f02-824da6c59d15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 08:30:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22218525-d481-4cae-9cd7-83050f5a0acc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 08:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:35:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b8cabf82-770c-4f64-825a-16b2114221d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 08:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 08:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 08:40:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"779b53c4-5c96-405d-bc38-4e1a9ebe083b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 08:45:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2eb20196-b3fd-48ca-b77b-b58acc09bb79","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 08:50:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3f2700a-9ace-4dbb-aa2b-08ed45ca9c74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 08:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 08:55:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"01718b13-4bae-42b3-8696-57e377c9ec5b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 09:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 09:00:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4a2fec4-b6f9-41f3-bca8-6accb62370f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 09:05:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"26907e0a-04dd-463a-b11d-aae604049e7a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 09:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 09:10:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bed6e722-d1ea-4a68-b37e-daf3ee58cd31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 09:15:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa5cf14e-c24b-4159-82fe-779f78d20b13","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 09:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 09:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 09:20:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"47b6af98-a179-4917-bae5-9c5a53bde87c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 09:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 09:25:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2dd27097-14cc-45a4-a650-ac376fd5ec50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 09:30:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-09-04 09:30:00"}
{"level":"error","message":"[CRON] Attendance alert failed: Cannot read properties of undefined (reading 'findMany')","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findMany')\n    at cron.schedule.timezone [as _execution] (/home/aereuxky/cbcsms-backend/src/jobs/attendance-alert.job.js:19:53)\n    at Task.execute (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/task.js:17:25)\n    at ScheduledTask.now (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:38:33)\n    at Scheduler.<anonymous> (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:25:18)\n    at Scheduler.emit (node:events:519:28)\n    at Timeout.matchTime [as _onTimeout] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduler.js:30:26)\n    at listOnTimeout (node:internal/timers:585:17)\n    at process.processTimers (node:internal/timers:521:7)","timestamp":"2026-09-04 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 09:30:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a43a475-290d-4e82-ab8d-2665c90d91ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 09:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 09:35:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d77c7349-49a9-4d90-a425-08fcad87318d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 09:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 09:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 09:40:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7dfc141-86c1-4e02-86d6-c5ac7d45f9cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 09:45:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e74a6795-8110-4dab-8c9c-cf6e1f54dd33","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 09:50:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22cc64cc-886f-49b2-bbed-080ff3f88ffa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 09:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 09:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 09:55:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a16aa980-1f92-4967-9d57-40f0ae29be85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 09:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 10:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 10:00:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92fcd461-a3b0-4158-9cd7-b66875d9f27a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 10:05:00","totalConnections":1}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"072f7044-cb1c-4ac2-9573-d60356bb07ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 10:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 10:10:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15f86e6c-46a3-4d11-ab55-b811ad0d3447","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 10:15:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dafcfbea-0938-4058-9d80-81cdeb169f3b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 10:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 10:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:20:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4e5aab4-bb1b-41f6-b78c-589a1c29f9be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 10:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 10:25:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8756f4f0-7d5e-47aa-b634-c5530427ce9f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 10:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 10:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 10:30:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b544b084-c491-4fa4-b585-ccb11547dc34","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:31:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 10:35:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a089bfa5-ad8e-4219-9012-7f5aea0dc93a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 10:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 10:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 10:40:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aed202aa-6263-4d0d-a39d-31385af91059","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 10:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 10:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:45:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"14c8b475-e59c-48e2-be23-9062bd88a924","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 10:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 10:50:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96aad319-6ba7-430e-a172-643d67876c3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 10:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 10:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 10:55:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0046d46-1e94-4ed2-8201-a656b3f93869","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 10:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 11:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 11:00:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a21b2872-2cb4-41db-bfd1-84841a454d6f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 11:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 11:05:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5810f42-2129-42b5-9d84-723db60c5b56","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 11:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 11:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:10:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 11:10:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 11:10:01","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0c171296-325e-447d-8766-4a6ef0a6b96b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 11:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 11:15:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a9670cc-bfa7-49f3-9079-68424494898a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 11:20:00","totalConnections":1}
{"durationMs":1.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b93b766-5c57-4c1d-ae79-00dd13386896","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 11:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 11:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 11:25:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb520b5c-dc36-4756-a413-7f8cf7190c40","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 11:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 11:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 11:30:00","totalConnections":1}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd5dcbd8-67f4-4822-b4d4-737b6ec72643","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 11:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:35:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1c32835-b72b-43b6-ab1a-da25d0e98421","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 11:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 11:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 11:40:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7c663b62-2c46-4414-9b30-f30d6c945b13","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 11:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 11:45:00","totalConnections":1}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"502a3474-93e6-442e-ba1d-1d4f9eb0dafd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 11:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 11:50:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2694160a-dea4-4f80-84ac-c5b1b82d4e63","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 11:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 11:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 11:55:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bdc1e80-97c3-40da-97c2-1f23d2aa7672","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 12:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 12:00:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc18b8fc-8f91-47d9-b76d-b41e92a8e93f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 12:05:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e238b05-7a28-4e92-9c20-671753ba5da5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 12:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 12:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 12:10:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"772d8e40-183b-431d-999a-3a8fe5784edd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 12:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 12:15:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a1f122d-889e-49db-a49a-278a6c5de164","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 12:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 12:20:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c34ef28a-1101-4200-86bb-96e0cc6dd56f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 12:25:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5146aa96-60f1-45bc-a274-2b5439757a0f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 12:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 12:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 12:30:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a37058d-43f7-4500-9d43-046a64d87122","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 12:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:35:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d496ffe-ab86-4a49-bf65-d9864ce195c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 12:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 12:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 12:40:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4269fa0d-9ffc-4f19-8214-0a5ff8b38193","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 12:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 12:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 12:45:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a6c5d79-0ef7-4114-a829-d509506d18e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 12:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 12:50:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e751c1c-64c3-441d-b001-f1189d5b643e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 12:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:55:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d5f01d3-d75e-40d8-aaaa-171722b3f4f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 13:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 13:00:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"776c06ca-be74-4485-aac5-49fea10213d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 13:05:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4e0364e9-f732-4533-8dbe-5aab8192553b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 13:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 13:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 13:10:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f65090fb-b362-45f7-b1b2-5411206cdf5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 13:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 13:15:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c12e66a7-3c08-4175-9a69-d63eb840a5ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 13:20:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10d239a4-4cfb-4bca-a9d8-17f082e22b0b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 13:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 13:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 13:25:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"21f54c93-a1b9-43d0-a3ec-5baf9ce6c7cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 13:30:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f70f2025-339f-46d9-982a-a1ee3e26bf3c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 13:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 13:35:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49f99d02-cdac-471d-bb61-bbecc912e4cc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 13:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 13:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 13:40:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ede5a23d-c7f5-472b-b0a1-37ee1ee869c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 13:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 13:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 13:45:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"97ff4ff6-ac7b-4a78-9d57-f92923223825","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 13:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 13:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:50:00"}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0b2e4fc-29a1-47a9-bc41-76d242a40f47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 13:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 13:55:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ce58345-958e-4544-b344-995fee3ba495","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 13:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 14:00:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4daa53a-4116-494b-b13f-c78a05951f24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 14:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 14:05:00","totalConnections":1}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2d8dcde1-528d-48eb-8e05-8957e479041d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 14:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 14:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 14:10:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8612d94c-e9f0-4279-af25-b26344d5d168","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 14:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 14:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 14:15:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb03c2f4-7fb4-4992-b12e-49fd0a08da89","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 14:20:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1baffe4b-94df-4223-85ae-cfd0af72970d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 14:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 14:25:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 14:25:01","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b0be1c3-165a-46aa-bc83-430636c87d93","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 14:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 14:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 14:30:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5bc9ec27-64ba-44de-bb83-62e585ce74dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 14:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 14:35:00","totalConnections":1}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"88d071f7-2dce-4548-af52-4d4734bffef2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 14:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 14:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 14:40:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"442818b7-11e7-45be-a89a-0f994b64cf1d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 14:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 14:45:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f9b179b9-be4a-4e02-9311-a867eacc15e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 14:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 14:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 14:50:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23e70777-0e95-4a8e-921e-cc820530b83e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 14:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 14:55:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4446e204-901a-4fce-8c5e-d19fd378b839","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 15:00:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca9a2f2b-1570-45da-80f2-3f747e6a3f54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 15:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 15:05:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6204d29d-2f85-4ec8-805e-d6892962b442","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 15:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 15:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 15:10:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"035e5b6b-2bdf-4516-88d0-cc4b888c858b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 15:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 15:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 15:15:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73708a15-9675-47ea-848d-79432c007237","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 15:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 15:20:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c55491af-e874-4f10-8f19-40b85fd825c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 15:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 15:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 15:25:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8408a70e-ac9c-46d1-950a-bc383cac4beb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 15:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 15:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 15:30:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"613ff5f6-b46f-4700-871b-954457160d03","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 15:35:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"250eaacf-6410-46ab-803a-661f22fe5168","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 15:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 15:40:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"030329d2-a587-4cd0-8752-d57e2c1f83aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 15:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 15:45:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b486ccb7-065e-42cc-b242-17d47eba4072","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 15:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 15:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 15:50:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"386c5f0b-b4bd-4885-b3ba-dcfa8236cc0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 15:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 15:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 15:55:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"75c52556-d42c-4826-835a-198bd5dc5f1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 15:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 16:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:00:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b87aed4a-76ff-40a9-b59f-e8248becd08d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 16:05:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29613696-14f8-405a-8373-23fff1cbdaae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 16:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 16:10:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"defca49c-7433-4a02-b093-6ebec16c5242","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 16:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 16:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 16:15:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8de1ba42-565f-4f78-84b1-c83743cbc423","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 16:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 16:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 16:20:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e2139d44-e4fa-4eaf-9723-667220e16a27","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 16:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 16:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 16:25:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a0538ec-81a1-43b9-a653-20dcf38e4dc9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 16:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 16:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 16:30:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a6241cd-3acd-4d3b-a7ca-a90a07c8e971","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 16:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 16:35:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10fe598b-bc8f-48f1-be5e-f2b114a33218","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 16:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 16:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 16:40:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eb15a7c8-5ce3-4ef4-b2ad-6026403d75ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 16:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 16:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 16:45:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23b11e2e-488b-4c15-95b0-55c1025dccbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 16:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 16:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 16:50:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63b13267-9f9f-42a1-9b13-803ff4c93032","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 16:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 16:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 16:55:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ce7bf2b-decb-45d0-9f95-bb9d2ed0da59","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 17:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 17:00:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ae5795b-490a-44a4-b11e-cbee186502a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 17:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 17:05:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d55846a-cdd0-4d99-a294-e4ee1f70e43c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 17:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 17:10:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17715009-20dc-4c59-850b-8e238f0005a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 17:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 17:15:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d71c06e-0378-4d14-b869-6928fee9968b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 17:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:20:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a51ce066-e7d3-4321-8485-7dc41b374854","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 17:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 17:25:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"88b07b5a-a7da-4aef-a45e-d02fca92ae27","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 17:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 17:30:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4352564a-6699-4eeb-9285-fad857b4bede","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 17:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 17:35:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c947cd60-ae92-455e-867e-40afd1c904f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:38:00"}
{"durationMs":1.69,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f14150e1-cf5e-4b53-8458-78dfca661f89","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:38:33","userId":null}
{"durationMs":1.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"01aceafd-4a70-4655-81aa-8feef54d99ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:38:43","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 17:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 17:40:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5030adce-3f67-4dad-80ec-ebc00d1ff34b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 17:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 17:45:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f6f04c5-81dd-41ce-aa86-9537f049a435","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 17:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 17:50:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ebbec98-b388-40e6-b04a-9e265e916204","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 17:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 17:55:00","totalConnections":1}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"19b8b171-3e74-4175-a820-7b3e58485fdb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 17:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 18:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 18:00:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc59f06e-6f8e-47f6-9c25-9594c7d82b35","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 18:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 18:05:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1e996e9-90db-4329-9cf9-cb28e151cf84","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 18:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 18:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 18:10:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ca7edc98-7f03-4801-9989-25f46fb5ead0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 18:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:13:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 18:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 18:15:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"566a18dc-9f9a-4bc2-8c7a-264064b218a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 18:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 18:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 18:20:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"38429c0b-f196-43c2-a795-057f148a4e77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 18:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 18:25:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b6a300e-a4e9-4230-b2f5-2ceccd25decc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 18:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 18:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 18:30:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"801467fb-6eac-4031-ad8d-78991b80bef4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 18:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 18:35:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02005307-c791-4672-8345-d35d3e475c35","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 18:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 18:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 18:40:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6c342fbe-e75b-4a8b-a74b-a01d6889fb9f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 18:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 18:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 18:45:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fcfc660f-4a1c-4bb7-ba5d-a521bbd7f4e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 18:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 18:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 18:50:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"064542c1-e208-4489-a104-6fb00591901a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 18:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 18:55:00","totalConnections":1}
{"durationMs":1.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"53dc3c39-818a-4c9d-b6d4-d9dc7fa073f8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 19:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 19:00:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7cf4f903-ab5f-4949-b61a-5d7e6944ca3e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:01:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"375eac23-a5bc-4794-9ad5-c639da6d4970","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:01:34","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 19:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 19:05:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a8e7396-9acf-4380-a4a6-7839e8b0b824","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 19:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 19:10:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"babcbfc1-9a5a-419a-95ae-835f7d0b7603","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 19:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 19:15:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e10d2b32-e58a-4a30-b310-309f03f991f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 19:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 19:20:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d80467ee-1b47-4413-a999-a3405256216d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 19:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 19:25:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"343ab771-b53e-4345-95a2-8c376cb7652f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 19:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 19:30:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70ae0bc8-4932-478c-8717-18b8e72bc616","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 19:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 19:35:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea5f9d50-e217-4351-b35d-56e5fc30123c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 19:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 19:40:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df7e8a81-2046-4ac7-805c-0ff2010eca7d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 19:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 19:45:00","totalConnections":1}
{"durationMs":3.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9e38b3d9-06e5-4343-9845-415102560b57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 19:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 19:50:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9539231-fa7f-4432-991a-bd50319f7082","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 19:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 19:55:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dcbdd4ed-041e-4803-b3a2-bb1e184b1f53","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 20:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 20:00:00","totalConnections":1}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2644fc7c-9340-4144-ac2b-6d9bcb422fb8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 20:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 20:05:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9867159d-e97f-44b8-a55a-a13a2cd007cc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 20:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 20:10:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84db583b-248b-47c6-8001-34589940b885","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 20:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 20:15:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4dc5e8f-86ee-40b9-8814-11d22b185ed7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:19:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"32a6e5a8-b25e-4ac1-9115-399a8cb2d259","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:19:58","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 20:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 20:20:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db1fa47e-5068-4339-a25c-d7b9214328c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 20:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 20:25:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"36e0cf2c-a20b-44f1-a0cb-57c4bc5d19a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 20:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 20:30:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a8535bb-0e35-4093-bc27-000ab9416a28","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 20:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 20:35:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa03bcbb-a51f-403f-9de2-d87bf0bc79b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 20:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 20:40:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"adc5a690-bff7-45ea-b61c-594855d2418c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:40:02","userId":null}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a69a349-eaab-4272-b2af-9bc9d7128e37","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:40:18","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 20:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 20:45:00","totalConnections":1}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8dc3041b-d402-4b96-a5f2-3d57cdb88177","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:47:00"}
{"durationMs":2.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"127df61e-56bb-4187-b5d5-8133ae693b09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:47:07","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 20:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 20:50:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66ee2ecd-7c84-4508-9f2d-f5875e913476","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 20:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 20:55:00","totalConnections":1}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eb5abb91-68e7-4707-9bb8-e2e88847a3ab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 20:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 21:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 21:00:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5245203-3bd5-43c1-bc3e-6a30070b6c39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 21:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 21:05:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0cc28c57-0788-4411-b6ce-fe66f6d63260","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 21:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 21:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 21:10:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56b5fce4-f01a-463d-93df-b08fc02c0dea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 21:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 21:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 21:15:00","totalConnections":1}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd893a96-ffb8-4caf-8644-3d7acce8f132","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 21:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 21:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 21:20:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41344d6a-71e6-49bf-bf74-394e8c998665","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 21:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 21:25:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"923bc673-6403-48be-9ee2-9606c1126778","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 21:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:28:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 21:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 21:30:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8c1da0c1-df3e-4b58-b417-53cdd3dbf081","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 21:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 21:35:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"099580f2-c6d2-41a0-9e2e-267733c598b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 21:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 21:40:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2dc33892-265f-4d0f-8fd4-288a3977ed3c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 21:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 21:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 21:45:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00358992-c904-43d2-a36e-feed89d64291","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 21:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 21:50:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8321daf2-2344-4bee-8764-5ebfd2f05484","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 21:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 21:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 21:55:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"541ea6b4-d725-4db4-88e5-eec05d0703e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 21:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 22:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 22:00:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"36869bae-1dad-4f60-8483-4dc07b993de5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 22:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 22:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 22:05:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7522475-7641-4d32-b39e-5265e29597a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 22:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 22:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 22:10:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc835435-6c39-4b5c-aa0c-0e0e32263d2b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 22:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 22:15:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b21c547-00ec-4d7a-b840-e45cdec84fba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 22:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 22:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 22:20:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8859b22e-1044-45ae-b6ca-0f900abeca4e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 22:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:23:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 22:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 22:25:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b638a10e-8a0d-4f57-affb-cdd663ca018c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 22:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 22:30:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1001f063-063b-4351-bbd9-204bca6e5cd5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 22:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 22:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 22:35:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24604b0b-18c8-443a-b858-27832e536835","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 22:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 22:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 22:40:00","totalConnections":1}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6395f814-0228-4204-be3b-afb92188d761","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 22:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 22:45:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98b89a41-0be6-46e1-8b25-b4bb213831af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 22:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 22:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 22:50:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5312fe24-33dd-4fa5-89f0-42d2774a1dd0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 22:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 22:55:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e86ab74f-4ee0-4822-bcf1-70de16ae29dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 22:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 23:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 23:00:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"90d83e22-ac2e-438a-b552-042cfb55c7d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 23:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 23:05:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7d52b4a-7c17-46bc-b008-89dcd9926f44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 23:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:10:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6369472-25ef-4e1f-8a46-83d0ab00703f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 23:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 23:15:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0999d9a-90ae-4efd-864b-523ffad7b458","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 23:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 23:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 23:20:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7c2cec0d-f26d-472e-b5e3-1d3221e82444","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 23:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 23:25:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9394c7ce-cdd9-4d61-9d60-650a51859722","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 23:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 23:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 23:30:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6ed0e03-7dfb-4e47-83cc-6e3f89426b44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 23:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 23:35:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1059d3f5-91cf-422e-8577-9a5273f71c62","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 23:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 23:40:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b643b92-0b18-45f3-9b5b-eefa5d1dd069","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 23:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 23:45:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc50a99b-bc01-42aa-ab2e-240a7892296e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 23:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 23:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:50:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0496ae57-dcd9-46c7-a21d-c8b226836f73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 23:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-04 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-04 23:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-04 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-04 23:55:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb90bd64-8bcb-4a14-970f-df56f763c772","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-04 23:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-04 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 00:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 00:00:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0867e360-1fc9-4f92-a5c1-860eaef8098e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 00:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 00:05:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7146260b-7664-4ddc-8bdd-e7eef6a09cb9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 00:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 00:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:10:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"361d95d6-58e1-4445-81d7-6c36b1a30c38","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 00:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 00:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 00:15:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e8c20efb-bf7a-45f3-91ac-83517c8e5d9c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:17:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 00:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 00:20:00","totalConnections":1}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f2edcb9-aadf-452f-bdd3-af1b8636b146","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 00:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 00:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 00:25:00","totalConnections":1}
{"durationMs":2.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7523e389-290a-4114-a468-34a841025ce9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 00:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 00:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 00:30:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f066fb6-9693-4261-ac35-4e76ae53998b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 00:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 00:35:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2a1dd10a-4876-493e-a957-cd73b6887a3c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:36:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 00:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 00:40:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7afff9bb-b6f7-4bfe-81ad-6457c26662a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 00:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 00:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 00:45:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d88250f-eacb-4738-8e5a-44da126f3bd0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 00:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 00:50:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ed8f386-7620-41a2-ada3-960cf35a00db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 00:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 00:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 00:55:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c36104e5-0b8a-430f-87f3-521071a775ae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 00:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 01:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 01:00:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85cc2739-ad6b-4c50-b722-54cb83b2d07c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 01:05:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ecb31985-9e0d-4890-928b-a7c2680437d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 01:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 01:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 01:10:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0e20ddb7-54e3-4efa-9292-faea7c42365f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 01:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 01:15:00","totalConnections":1}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f6c5b1f-4561-4087-a9ac-d411cc22a9dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 01:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 01:20:00","totalConnections":1}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"056e949b-76db-4a98-805f-2794a62e35fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 01:25:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ad20517c-2d4f-4398-966d-870b8cf8d367","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 01:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:30:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 01:30:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 01:30:01","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fcb36d23-ffe1-4076-b89c-901fe3e29f3e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 01:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 01:35:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51ca4c94-d6b8-4740-874f-ab190102865d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 01:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 01:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 01:40:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8dae0a4-ae74-49a1-8f43-8577523096c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 01:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 01:45:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f558497-f50a-43dd-b406-6f1dca31b1bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 01:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 01:50:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc4dc42d-33db-4cbc-8bec-1b8cb3edbaaf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 01:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 01:55:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8478a199-1ae2-4490-be0d-f112dcc8076a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 02:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 02:00:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a733eb0c-f244-462b-bbbc-02f1f2b989df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 02:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 02:05:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"60959cb0-d290-4fd1-8b67-ccbe79f9afd9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 02:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 02:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:10:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29a3667f-390d-46d7-9e17-6ee9c136fca2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 02:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 02:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 02:15:00","totalConnections":1}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"166f4cca-2da4-437b-998d-8905c3625b81","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 02:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:20:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"261ba394-3934-4518-af15-fea6c22e2427","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 02:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 02:25:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4768a5be-8b6e-4ae1-b9fb-9e2e235e30a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 02:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:30:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"78b6a44c-bb91-4d25-b805-19ac87399202","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 02:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 02:35:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70d1acc5-5ca8-4224-a9ab-753b71d17d93","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 02:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 02:40:00","totalConnections":1}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05fec039-db0a-484e-bbee-36ad2065841e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 02:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 02:45:00","totalConnections":1}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44862b74-4ff3-4657-9703-d9a8cf9027a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 02:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 02:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 02:50:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d9aae933-07ee-4a3a-bcd7-1b4aeba020d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 02:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 02:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 02:55:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6836992c-dae6-436b-8b49-56e52c117621","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 03:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 03:00:00","totalConnections":1}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e66b4e73-e1e0-45c2-8673-476a588fd5da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:04:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 03:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 03:05:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73a4e51d-ee79-4b5d-9aba-7371ac2d8529","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 03:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 03:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 03:10:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b6c327e-4dc8-4230-aa05-7df0c2011912","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 03:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 03:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:15:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4325d813-978a-452a-b91f-d3124e16139b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 03:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 03:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 03:20:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d11c0a7-286d-4f12-bbef-83ac15611820","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 03:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:25:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f908da81-5913-4f9c-9b80-7912dcb5a6d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 03:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 03:30:00","totalConnections":1}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9cd9f63a-f5fa-4c85-a6c4-7197cc2c29a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 03:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:35:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7aabe4a5-0fc2-4873-9da4-c4de04b7ccf1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 03:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 03:40:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"337acced-c789-41c3-aa21-4d295b94f9c1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 03:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 03:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:45:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f70b8416-bee7-4ed2-ae94-657b133e2e63","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 03:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 03:50:00","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0987a08-bc60-4848-9f6c-34d22464caf0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 03:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 03:55:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c5cec98-4c9b-4038-8874-249aea843235","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 03:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 04:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 04:00:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48ca3a99-0c70-4de5-b0bd-14f9c6cde78c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 04:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:05:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"362185f8-119d-4cff-865d-8318b30ec1a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 04:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 04:10:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"55c26b7d-f17f-40a9-9a32-f4768721b790","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 04:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 04:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:15:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"632d2b14-3a6d-4ef4-9284-c8643dab6b81","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 04:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 04:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:20:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"507244b6-d8a0-4e10-a4ce-6666c413616e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 04:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 04:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:25:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2584229-c1a3-48f7-a3f6-5a07fd2d132e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 04:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 04:30:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4f4fa7da-1bbf-4910-8537-1b3ff6962803","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 04:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 04:35:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44cd0a94-f9a0-4f69-9062-41585c768af0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 04:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 04:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:40:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f5918dc-22eb-43cd-9456-4ad461aa1208","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 04:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 04:45:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f317ea29-0c75-4ad9-a257-9041b2b0f6bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 04:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:50:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6248e3a0-3401-4850-8a58-94e8a5f11832","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 04:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 04:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 04:55:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58cfd3b3-2761-4ece-8788-09400ad45495","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 05:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:00:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f41582f3-9da0-46dd-ad15-244fe7d7a332","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 05:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 05:05:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"725d8cd7-8403-4255-8912-d26b2483cd28","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 05:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 05:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 05:10:00","totalConnections":1}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"811735b3-b8ca-49c5-b500-44d27307575c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 05:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 05:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 05:15:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e525097f-d5f2-4615-8389-47184e1869ed","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 05:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 05:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:20:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6fb2a1db-4328-491c-a9f4-bf42bd26be4a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 05:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 05:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 05:25:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"34c18b51-1879-47e5-9e59-52b4ce6e6bca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 05:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 05:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 05:30:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c67bb71e-3c0b-404d-9c6a-e4e62fd201a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 05:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 05:35:00","totalConnections":1}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2da83bf0-f149-4024-af4b-6da13d5a5fe6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 05:40:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7cf4d16b-59b0-400b-b749-33c8ca2b788a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 05:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 05:45:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a220c8c9-c183-415b-85b9-a84e5ac87db9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:49:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 05:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 05:50:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b909636-b1a9-471d-bb0f-a4724ec6df54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 05:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 05:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 05:55:00","totalConnections":1}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"276ffa4a-7a15-481d-be7c-1cd52d9bfa25","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 06:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:00:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"683e7061-104e-4438-a327-8f9d6f6ceb04","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 06:05:00","totalConnections":1}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15032e42-d7fc-4631-88a7-7f7a3a3d893d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 06:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 06:10:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b2fa6fb0-6699-4310-a205-bd6060a28112","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 06:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 06:15:00","totalConnections":1}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c89fd2af-e295-40ad-bb3d-ba8fb42569ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:17:03"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:19:00"}
{"durationMs":3.16,"ip":"150.182.94.160","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/session/properties","requestId":"dc092fd8-bdbf-487e-a1fa-9fd99ff3406d","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-05 06:19:45","userId":null}
{"durationMs":1.73,"ip":"59.211.178.66","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/session/properties","requestId":"9fa22fda-b783-4cbf-a24b-e52d9a9ec62b","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-05 06:19:45","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 06:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:20:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cfc12486-8e04-4bae-a1fd-54cb13cb4704","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 06:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 06:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:25:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bbe75e44-37d5-456c-a8ae-4dce138cfb58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:26:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 06:30:00","totalConnections":1}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c050bf5-671d-45e7-8ee6-0a50ccb149a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 06:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 06:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:35:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d55e67c8-3a64-458d-8f36-abe49020d4b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 06:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 06:40:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"153645d2-7ee9-4297-a7fc-a98a86c8fca0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 06:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:45:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b269bb33-db4a-41e1-b873-a4b9deac240d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 06:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 06:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:50:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f84aac98-94b5-47f5-b9c3-2c487d0e9ff5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 06:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:55:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bad630cd-b450-43e1-a5d5-3f2223cac488","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 06:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 07:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:00:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1fdb0b82-4f14-4a79-bd3e-0c6fd4f9ef86","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 07:05:00","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb8f2cc9-6ad2-4fca-9ceb-f122c9c3533b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 07:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 07:10:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a989a67-c32a-4d02-b9ef-4129f79b826d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 07:15:00","totalConnections":1}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98c5da22-ae3c-4b60-92b9-97de16594d5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 07:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:20:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c47d4a58-258f-4413-b40f-22be5dd45c48","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 07:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 07:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 07:25:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1356e95a-213c-4c65-b64b-f3e7a3c1fcc0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 07:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 07:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 07:30:00","totalConnections":1}
{"durationMs":1.62,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ed23ab59-f069-404b-8b5b-0624ff5a07e6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 07:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 07:35:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f46e59d4-f5b8-436f-a346-4135f0836f9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 07:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 07:40:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db0151f6-e41f-4361-9708-2be8c8cc4177","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 07:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 07:45:00","totalConnections":1}
{"durationMs":1.7,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d2ac313-1a49-4e92-99a5-95435091a7b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 07:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 07:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 07:50:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c1ddcbd-73b9-4158-8d19-53a5f6e24697","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 07:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:55:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b76442c-6fe7-4685-9e64-5ea57921a07a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 07:59:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-05 08:00:00"}
{"level":"error","message":"[CRON] Library overdue check failed: Cannot read properties of undefined (reading 'findMany')","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findMany')\n    at cron.schedule.timezone [as _execution] (/home/aereuxky/cbcsms-backend/src/jobs/library-overdue.job.js:14:56)\n    at Task.execute (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/task.js:17:25)\n    at ScheduledTask.now (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:38:33)\n    at Scheduler.<anonymous> (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:25:18)\n    at Scheduler.emit (node:events:519:28)\n    at Timeout.matchTime [as _onTimeout] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduler.js:30:26)\n    at listOnTimeout (node:internal/timers:585:17)\n    at process.processTimers (node:internal/timers:521:7)","timestamp":"2026-09-05 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 08:00:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-05T05:00:00.030Z","service":"cbc-sms","timestamp":"2026-09-05 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 08:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-05 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-05 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-05 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-05 08:00:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"831d0a5b-0ee6-440a-9ca4-bb0cac239daf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 08:05:00","totalConnections":1}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5fd09fc7-1793-4f72-9952-448db0764e9f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 08:10:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1bd5fc70-453d-4c9d-89aa-09977e7e9e7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 08:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 08:15:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"80575b9d-55cc-4097-ad72-8415ab944d48","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 08:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 08:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:20:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea940104-4cdb-4159-b6f2-b64a4a67eb0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 08:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 08:25:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc3ef0bd-b77c-4c47-ac45-bcf2fb334a28","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 08:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 08:30:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd1a8697-6887-4032-bf40-9b84aaf2d32d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 08:35:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"18e3d789-edcd-4920-826c-01b3e074de40","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 08:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:40:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7413f43-f2ab-4358-a75c-d008bb6c584a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 08:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 08:45:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c023df7f-1706-4153-906a-67447c80773a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 08:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 08:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 08:50:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b0b17d8-456f-4c4f-91fd-5b52c871b1a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 08:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 08:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 08:55:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a91defb-369c-4f57-8521-48bde6379800","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 09:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 09:00:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f61ac49-3be1-4fdc-a6b1-d81c1700aebf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 09:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 09:05:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4fda6a6b-251b-4ae6-b061-9dcf9a62800f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 09:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 09:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 09:10:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c3239cf-22a9-4438-9371-916b0350940b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 09:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 09:15:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0fa01df1-ab2a-4d7d-a7fc-90a7b0fe1ba9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 09:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 09:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:20:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0fe9590-421d-43e7-ab28-29df90f6cf4c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 09:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 09:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 09:25:00","totalConnections":1}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c0a53493-8cea-45a0-9092-bc5807c6e053","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 09:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 09:30:00","totalConnections":1}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f5773b1-c6c1-49da-926d-18d53b0c43d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 09:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 09:35:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a403958-2a5c-499a-b437-743f2c6105e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 09:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:39:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 09:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:40:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d504c2a1-643a-4490-a15d-baa619d743f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 09:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 09:45:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"19f649b6-0de0-4946-bffa-a639f3842d75","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 09:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 09:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 09:50:00","totalConnections":1}
{"durationMs":1.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a228a057-5ac9-43b4-a0c9-48cf8fb4428c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 09:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 09:55:00","totalConnections":1}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0b73e8f-1a0f-4b2f-91bc-6b2474d001a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 09:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 10:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:00:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e93b7499-4202-4bdd-a9f8-a9c8b283e6b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 10:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 10:05:00","totalConnections":1}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"716d5a60-1ee3-476e-8061-854363a45b54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 10:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 10:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 10:10:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b8eb55b-d0c4-4fd9-85b2-7aa7369e18d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 10:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 10:15:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de2b1e9d-b453-43eb-b4d5-c7a4723999b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 10:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:18:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 10:20:00"}
{"error":"Too many connections","level":"error","message":"Integration sync cron job failed","service":"cbc-sms","stack":"SequelizeConnectionError: Too many connections\n    at ConnectionManager.connect (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:102:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async ConnectionManager._connect (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:222:24)","timestamp":"2026-09-05 10:20:00"}
{"level":"error","message":"[ScheduledMessages] Error in cron job: Too many connections","name":"SequelizeConnectionError","original":{"code":"ER_CON_COUNT_ERROR","errno":1040,"sqlMessage":"Too many connections","sqlState":""},"parent":{"code":"ER_CON_COUNT_ERROR","errno":1040,"sqlMessage":"Too many connections","sqlState":""},"service":"cbc-sms","stack":"SequelizeConnectionError: Too many connections\n    at ConnectionManager.connect (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:102:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async ConnectionManager._connect (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:222:24)","timestamp":"2026-09-05 10:20:00"}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3a1ef02-bed6-488e-b733-7fe3f32c8674","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 10:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 10:25:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5124ebf0-386f-4781-8be1-726488fde97b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 10:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 10:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:30:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ed00754e-bf8a-4711-bc89-12cacee1efe6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 10:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 10:35:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f9cad5d-c3d5-4544-9861-87457f3066b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 10:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 10:40:00","totalConnections":1}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"066e7394-3f5f-4994-b7dc-dbfaac69caa7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 10:45:00","totalConnections":1}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"565cde69-2199-4db3-a5cf-56baef7ccc65","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 10:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:50:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"007098ad-8382-4c31-8a84-66773d3a417c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 10:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 10:55:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7cc77b54-792d-41db-ad5e-ba19939b38d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 10:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 11:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:00:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5fd01b0-7ca3-4839-a000-1d118f41a0a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 11:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 11:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 11:05:00","totalConnections":1}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b392cbf-c98c-4b38-ab33-091635e28a67","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 11:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:06:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 11:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:10:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"940388d7-1902-4f9c-8ad1-f674371d7ecd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 11:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 11:15:00","totalConnections":1}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1855515e-ee4b-440e-85e1-1cf841898e1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 11:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 11:20:00","totalConnections":1}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"545fbeae-61c7-44ed-b582-cd6856ca85b7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 11:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 11:25:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20ead70a-e161-411f-9cdd-1a6d191bf694","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 11:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 11:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:30:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71ce3334-a23a-4fd4-9e15-3c3ecbcb983a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 11:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:35:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"adf80238-16b9-4dd8-87a2-d3c5e1397d70","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 11:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 11:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:40:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91685017-2414-4e47-a36c-e067fed7a546","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 11:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 11:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 11:45:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0a6127c-2d04-46de-a2cb-86ffcaf73250","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 11:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 11:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 11:50:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ee87878-88aa-4af5-8195-365a50dc9110","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 11:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 11:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:55:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a88cdb4-6e8b-4d2c-b10d-621361008980","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 12:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:00:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af184f0b-2acb-4cf0-b505-7fdf23ff3389","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 12:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 12:05:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"491511e7-7af3-4505-8190-fdf111b2c332","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 12:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:10:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40876209-2e3d-456c-8327-f06ba922ca32","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 12:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 12:15:00","totalConnections":1}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"396888ea-6e25-48b4-8501-a475e0bddf3a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 12:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:20:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8dc56e8f-0e13-4ad5-b247-a6f7328faa23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:24:00"}
{"durationMs":1.48,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"83467f83-99ed-45fc-bc48-920316938727","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:24:37","userId":null}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":44,"event":"UI_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-05 12:24:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.19,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a085b9a4-9762-4d9d-bd05-011b3a7c2f46","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:24:54","userId":null}
{"data":{"id":null,"label":"Purple","name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-05 12:24:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.14,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1b108baf-0b2c-46c5-9b60-e5835549bbf7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:24:56","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":38,"event":"UI_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-05 12:24:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.81,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dd1acd48-4de0-44ac-8082-114b2a65426d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:24:59","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 12:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 12:25:00","totalConnections":1}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":41,"event":"UI_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-05 12:25:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.3,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"357ebd82-3479-42ea-b51e-1b86e489dedd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:25:01","userId":null}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"392d4573-9f7a-4b64-a6e6-64b6aaf7959a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:25:01","userId":null}
{"data":{"id":null,"label":"Dark","name":null,"type":null},"durationMs":83,"event":"UI_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-05 12:25:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.84,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"45086558-6712-4510-984a-91c37072f5de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:25:03","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":41,"event":"UI_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-05 12:25:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.66,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"36eac7b7-03da-4f6f-b9b9-9ad781bbbb55","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:25:04","userId":null}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":62,"event":"UI_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-05 12:25:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.11,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e33275c1-e74c-4dc0-b336-224299248300","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:25:07","userId":null}
{"data":{"id":null,"label":"System","name":null,"type":null},"durationMs":51,"event":"UI_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-05 12:25:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.83,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2d9720c5-0a6e-422c-8ea0-ced991a98326","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:25:08","userId":null}
{"data":{"id":null,"label":"Light","name":null,"type":null},"durationMs":127,"event":"UI_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-05 12:25:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.61,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee6686a2-bc28-4b18-884f-733a48465e38","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:25:10","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-05 12:25:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.99,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"948f1495-e2f2-47e2-80ba-2524e9eed0a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:25:23","userId":null}
{"data":{"id":null,"label":"Delete Confirmation","name":null,"type":null},"durationMs":39,"event":"UI_CLICK","ip":"41.89.96.253","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-05 12:25:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.84,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"45072e9c-f49f-4353-8819-7933499b1370","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:25:26","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 12:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:30:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb88f1fe-89c7-478e-8963-bde3c9a33073","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 12:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:35:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd9aa4b1-f2cd-42d7-85c4-7498231dec0c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 12:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:40:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4bada153-d8dd-44db-8d19-92a1708385be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 12:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:45:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 12:45:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 12:45:01","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf62543e-42d0-474d-8556-6173f96c0a89","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 12:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:50:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9cdefa12-2895-4b10-a184-a82973ec4475","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 12:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:55:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b80c1ed-d062-4e29-871f-f2fdc29cd160","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 13:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:00:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f6b6102-91a2-49b5-81c1-45d5c1333930","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 13:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 13:05:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87632d70-35d8-4c82-b0f7-c5ed1bf6dfdf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 13:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 13:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:10:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5163d07-4220-49f1-a0d0-f7679fdf6610","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 13:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:15:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4507dcd9-2884-458f-a692-d4e3fdf5d03a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 13:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:20:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3d78240-084f-4305-a2d8-7bd6ea966d00","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 13:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:25:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a621203-88b1-4843-8db9-399a8f550932","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 13:30:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d833fdbb-14b1-40e4-9ba3-c0a9c89aca80","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 13:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:35:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"689e7d45-6682-488d-ae9c-e6808865d656","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 13:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:40:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40139332-8286-4c66-9ab8-a74bc26cb8a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 13:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 13:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:45:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb57ee5e-bf21-46d5-b70e-afa678050b49","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 13:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 13:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:50:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b594c6e9-b770-462e-8419-18fc4a36de1a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 13:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:55:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c993dd31-929d-4e69-8dab-80d6a36e8670","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 14:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:00:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d66c0257-ffa9-47b9-8cf2-ec05b6f44a74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 14:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:05:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3904f30-1ec8-4d42-8339-6436162892ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 14:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 14:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:10:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7f0804d-c676-47a6-89d2-b589f062c828","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 14:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 14:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:15:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3d2823f-9821-4ecb-98c3-0bda283d38ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 14:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 14:20:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b9b4f463-72e5-4779-8957-d08b36dce474","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 14:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:25:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15bdd7bb-c026-4515-9368-6f30788a7143","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 14:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 14:30:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1cc9b5f0-5069-4b88-a280-2a693f4104f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 14:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:35:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"831fd602-ecbd-4043-bd44-817cc18b9e27","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 14:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 14:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:40:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2f96f771-5ece-461f-a76a-e644c9bc4abf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 14:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:45:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1dcc0252-ce4f-4613-a792-259c1b208918","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 14:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 14:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:50:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d0f3b81-b2fc-45f3-bf01-a15a75ad90f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 14:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 14:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:55:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"549327d9-3e66-4813-9c4c-43421c82e25f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 15:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:00:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b612fca3-3987-49ef-8316-230bf3eb5272","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 15:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:05:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"321a07cf-2faf-4078-a0d0-5aca4ed77420","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 15:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 15:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:10:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5b2eaad-d2aa-474d-b815-b6e66ab6e124","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 15:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 15:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:15:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6cfe0ec-67ff-481c-9050-de86c4c49038","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 15:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 15:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:20:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af5c7985-d77c-4642-ac3d-a61869dafa1d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 15:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 15:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:25:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cee764a0-435f-4ebc-857a-7d227b5f443d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 15:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 15:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:30:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8bada666-9e11-4eb5-8c92-ca540372cfdb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 15:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:35:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51564156-cf1b-4f33-8085-d3ee55cfc04b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 15:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 15:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:40:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"16c16def-2344-4ae6-9742-26b98f72842d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 15:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:45:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b51704b9-a75a-483c-bc1a-f7c75330391d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 15:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 15:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:50:00"}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df3dfacb-085d-49d8-8888-d86fb13f8d12","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 15:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 15:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:55:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"acc9b39b-ff4f-4c65-b512-c67caea4a949","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 15:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 16:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:00:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"235dc836-1f9d-4ed6-bb0c-c48db68381a2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 16:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:05:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1b3d3b7-8eca-40cc-b721-56b80034891c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 16:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:10:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dce6f43f-a64c-460c-b3ab-2e7d38a6c819","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:10:02","userId":null}
{"durationMs":2.61,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22c88eb3-e8a8-46bc-ba1c-ecc53a8777bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:10:20","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 16:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 16:15:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71a63439-bf29-4d6f-9733-fc43604e5432","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 16:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:20:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"30f7a2aa-8edd-44e2-8c84-f2c299b12c2d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 16:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:25:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f491b0d-2fe7-4f17-8217-e01f4845866a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 16:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:30:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6de3900-6693-4dd7-9685-f668bc38d7a6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 16:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:35:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9216e8f-78f1-4774-aac4-fa70a2ee34af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 16:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 16:40:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee4b7f23-ac80-492a-811e-43f13cef6900","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:40:02","userId":null}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3286b44-666b-4cb5-8085-84ca9878dc8c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:40:44","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 16:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:45:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2c4f34ac-9906-4c50-878e-6c6627db117e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 16:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:50:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"db85a76e-ab77-4f3b-94fb-84d6a51c78bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 16:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:55:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"863f74f8-83eb-43a7-8d54-e4d1dc884ec8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 16:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 17:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:00:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9f51ba4d-3471-41bf-b35d-74cf5447044e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 17:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:05:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd4ccd8a-d4d5-48ad-9813-9a4c8fa6a670","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 17:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 17:10:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0bef722-ae07-4c63-91b1-5fa724818935","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 17:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:15:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bca71c46-9a91-4de7-a58a-c10c6c28958f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 17:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:20:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7465a7f8-9560-43b9-b367-f23ecf837ba7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:20:01","userId":null}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f1c33dd-2dec-4e16-9643-be73f9938e90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:22:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 17:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:25:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17a7b3ea-404b-4303-b19e-5e89fe4331c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 17:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:30:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"26e5e278-476a-481a-a649-c032b8b909ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 17:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:35:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b042760b-2f1f-4b62-9c1a-a9cba33dca74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 17:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:40:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5e51fe6-ceac-4a52-81ad-d5d5a6e4fbff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:40:02","userId":null}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5654e371-dcb2-4d83-af30-c9df6e45ecba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:40:54","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:44:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:45:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 17:45:00","totalConnections":1}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54224c7e-fafc-4a20-8225-e6529494d9b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:45:02","userId":null}
{"durationMs":1.58,"ip":"41.89.96.253","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5af6063-2e94-46e6-8f91-611b8b5d9a8c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:45:56","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 17:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:50:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00cbacd2-be77-4bef-9eb2-f61018a1551b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 17:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:55:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ce77ed8-3850-487f-8804-12c1de8378c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 17:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 18:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:00:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91ce1086-10ab-419f-b1a8-edec3071e556","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:03:00"}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"42daa1a6-1378-49b7-b90d-1e3ecee598bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:03:26","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 18:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:05:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e8a87c84-ec07-4c98-b57e-8d0b262d2237","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 18:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:10:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e14ac41-96fb-47a7-b2b3-16e8919221f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 18:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:15:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1a5c78f-45f5-4d96-8a28-2cc69193a04b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 18:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:20:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d0b3ba7e-6111-41df-96ec-a11f71ea96f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 18:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:25:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1a50482-34ee-472a-9738-446f0aca4279","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 18:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:30:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62b5fa9a-0ebb-444d-842e-c5f02976002f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 18:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:35:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d9c25b07-6890-4de1-a5a8-28ff38b588e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:39:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6bf04389-bc62-4e45-8b89-8c4e7cf5aef1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:39:02","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 18:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:40:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"859f112b-4349-4e76-859f-bf201ebfb4d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 18:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:45:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0fb92f30-d7b8-4e70-a48f-4f1dc3bb6068","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 18:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:50:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a25b1136-a325-4cc3-8c10-8db46ce405e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 18:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:55:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"68a3bd41-ca61-40f6-81fe-a4f15e88bd27","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 19:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:00:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a69997d-b3d1-48cc-9cc4-2da12316ec73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:01:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d1b9ac74-5485-4e6d-9d35-6593a1f95976","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:01:39","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 19:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:05:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4954204d-32d3-483f-9de2-0486133d790d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 19:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:10:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b12df01-f91b-4212-b476-c1bc8a646e9c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 19:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:15:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c40b862-54af-4730-b015-8a665b7974f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:16:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a4e8de1-0743-4c06-9bcc-871c2ea89a86","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:16:18","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 19:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:20:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9daaad27-561d-4394-b0b6-f476f9edaaba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 19:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:25:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c04c8889-b0d2-40ba-b760-526ca6d6bfc9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 19:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:30:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3b94ddc4-bca0-495e-bb25-69d29f54ffad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:34:00"}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1777abbf-c8ad-40b0-a5a1-7eb1cfd4d0c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:34:37","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 19:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 19:35:00","totalConnections":1}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0bc9a0ee-27c3-4d01-8f56-5679488a0b0f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 19:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 19:40:00","totalConnections":1}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9a8b278-2654-4407-8ce3-b899d78ba664","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 19:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 19:45:00","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5e31e614-6036-422e-b03e-054e21f5c515","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:48:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d549980c-b109-46ee-ad11-f129762241e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:48:10","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 19:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:50:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d82be8db-acdb-4796-94f9-a4dfa618bbb7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 19:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:55:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51aa43d6-7d2d-4872-9409-a49136e0613a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 20:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:00:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e142700e-a980-461f-957d-52a661641f8f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:04:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5872901c-5fc6-43d3-bfcc-fd3dfa3f016a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:04:34","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 20:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:05:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"797642d3-4486-4ebd-aa9e-c99f54393773","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 20:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:10:00"}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c8c07ebf-cc98-4071-a4e6-5e1607a81139","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 20:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:15:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c4d355d-e0f8-4063-af1c-1e6bd28260a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 20:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:20:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61073e14-a12f-418d-8dc6-f9f647d2b66f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 20:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:25:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df4ac951-9c0a-490e-9cd6-54660ea922ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 20:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:30:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"93eae19a-8a4a-42b3-a7b8-8272b5b388a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:34:00"}
{"durationMs":1.66,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00abf60f-cdc2-4aee-93a2-7fdeee049d6d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:34:01","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 20:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:35:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ffab281-a9f0-4ae3-8d5e-cb3b3aa7d5b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 20:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:40:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"69e7f0be-8bfd-4817-9963-d56341405670","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 20:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 20:45:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b05bae7b-102a-4168-b7dd-f34585a4e515","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 20:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:50:00"}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"940b8fe4-8cc1-4a77-be51-1c34a86188f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 20:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:55:00"}
{"durationMs":1.64,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8eca7421-f0f0-4334-86aa-1f3f724dd076","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 20:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 21:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 21:00:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d0a7a73-03fe-431b-99a3-c71de1b4fb4a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 21:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:05:00"}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2eab0cb2-2c3f-420a-992c-62ea7583ceef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 21:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 21:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 21:10:00","totalConnections":1}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5103cc96-6f0f-4afc-925b-37f546f4f022","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 21:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 21:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:15:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5fffa2f4-816b-4643-983d-c6aa51ce9edd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 21:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 21:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 21:20:00","totalConnections":1}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3c749475-d188-4716-bff3-5ec05b059de6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 21:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 21:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:25:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d3281dbd-f9bc-4444-a9ca-2e748b953b50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 21:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 21:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:30:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3cf8c21b-9954-4e61-99de-3b697e201be7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 21:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:35:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d99b09a2-5146-4de2-8ef3-5eb069147829","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 21:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 21:40:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f87bf973-311e-4c6e-961a-bce7964b444a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 21:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:45:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46e291f5-ace8-4d13-8686-0c4419f5f918","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 21:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:50:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ccc1ea9-b44d-45bd-b398-351d2fa2075d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 21:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 21:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:55:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3fa86faa-22a7-4ab4-bd75-d209f44b39cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 21:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 22:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:00:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63a8d32c-e2aa-460f-afff-737b0dd67b0c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 22:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:05:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b3335a3-9b59-448d-8575-969d7bed628a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 22:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 22:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:10:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dac97e7b-8730-40c1-83e1-6f6e06986b20","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 22:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 22:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:15:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6f3aadd-e7cd-452b-b4e2-2e70623abbdf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 22:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 22:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:20:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e597dfcd-522f-4609-b53b-f64425400ea2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 22:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:25:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cebf486a-074b-4aa6-b5ad-f8506911e621","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 22:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:30:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8829247b-c8fd-494f-b109-49e122fd5778","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 22:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 22:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:35:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b62de407-bd52-4c4e-ad31-1f118e8afdeb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 22:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 22:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:40:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f234d205-58b2-4b01-9b04-1f9c07388183","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 22:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:45:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84879c05-2dac-4c02-9470-fea6fd56564f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 22:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 22:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:50:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dde1b048-b0f5-404b-8f28-0f05a7c086f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 22:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:55:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5525669-f48b-4216-a7a3-1a84b1a17448","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 22:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 23:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:00:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c8196360-a95d-44a7-a81e-273e04cf55bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 23:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:05:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f522830-2819-4d08-9c91-e4b42bfd6598","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 23:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:10:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c841c7f3-995b-430c-986b-791c3d1d6abe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 23:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:15:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ae54ec3-7b92-41e1-8c22-be88b6179ef1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 23:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 23:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:20:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10a527f6-b71b-4d54-8b98-8184055d1873","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 23:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:25:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7344ced7-8286-4260-aded-7b2e5b78dd43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 23:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:30:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2df214c9-c547-4353-8f21-a7f355e935a6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 23:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:35:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"13776dcc-ac11-4f06-867b-4365245da29b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 23:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:40:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ae6e54e-8d4e-4be6-a66d-f37fba504ad5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 23:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:45:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bdf3a416-5bd4-4436-9657-cecb12e98605","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 23:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 23:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 23:50:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae5a0c16-c5c9-4eea-bc9b-a78bc3feb0fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-05 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-05 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-05 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-05 23:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:55:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc8cd8b6-1042-444e-bea8-80484c25a415","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-05 23:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-05 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 00:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 00:00:00","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c6f3e0a-7f77-4f77-a3af-198fd85b46a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 00:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:05:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eea59ddd-5f4e-484c-b6e8-29dd32afbf37","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 00:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 00:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:10:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"94410797-42a9-4935-8c83-47a3e4f693be","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 00:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:15:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f249c7d-dbfd-4fff-80c4-6ab4a370fe11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 00:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 00:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:20:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1736d26-131d-4d44-bd1a-52df136ef887","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 00:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 00:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:25:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15b7412f-7aa2-47b1-bf20-4b9ded80dcc1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 00:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 00:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:30:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77980b3d-fb4f-4b92-9578-3594821942eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 00:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:35:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"257ee137-265a-4c56-93b5-97d36abb2b48","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 00:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 00:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:40:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e8055d9c-ed31-432c-98a7-34a7ae3b5925","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 00:45:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 00:45:01","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:45:01"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f910b8c1-0ede-4680-92ae-e0f34331e4fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 00:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:50:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45fc4b3c-0f2d-4b01-870a-94c89a2c6afa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 00:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 00:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:55:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7bd81a68-df0c-46e1-b625-932ddcd193d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 00:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 01:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 01:00:00","totalConnections":1}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8173a786-a334-4510-8541-15a8dafeaf50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 01:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:05:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1cd9b459-b3ff-41eb-9fa6-73560b4522c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 01:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 01:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:10:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"722b8bf4-7045-4a30-b315-93627891cd93","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 01:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:15:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51c7d33c-00ff-4a18-a209-897b82016f88","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 01:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:20:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76907682-6c8e-44e1-9e70-5f6bb8ff4362","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 01:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:25:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d00259e-54aa-4b7f-983d-23873ef4f7e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 01:30:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 01:30:01","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:30:01"}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63b365b9-b799-46b0-99cc-7b86a3e148e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 01:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:35:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea100f76-585c-440d-bc3f-8019bb29fe5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 01:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 01:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:40:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"95b4b6a5-9c24-426a-ad20-6075227ac655","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 01:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 01:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:45:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9da21e8b-0be3-415e-80dc-43148ff21b29","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 01:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 01:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:50:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4515c3b1-db16-43a7-b0cb-6635dbc2e27c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 01:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:55:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff2d1458-1469-49b6-9f4e-b1e18a4f67ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 02:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:00:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b065880-d5ed-4911-bfeb-10af994a6f3b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 02:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:05:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e153c9e-ecec-46bb-8967-df562c4aa51e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 02:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:10:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"30287298-f2b4-451c-8c7d-af24d7617446","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:14:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 02:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:15:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"161bbe3b-5320-493e-b6cc-60f91a3e86e2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 02:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 02:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:20:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4370a483-022f-49d1-86dc-126c22728d04","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 02:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:25:00"}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ee9813d9-fb24-4fa1-b1be-fa8b7b32622c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 02:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 02:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:30:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6116f8fb-8d46-4cde-ac80-2ec85d9ef2b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 02:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 02:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:35:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"acb666c1-30ab-44cd-a943-6e42a7294a4e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:36:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 02:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:40:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5ba9b2d-f38e-4386-b616-aadcb158798b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 02:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:45:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d2def468-f08d-48d4-82e5-c8284ea88939","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 02:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 02:50:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bfc1dae1-af61-4c30-91c7-a360e46311fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 02:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 02:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:55:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"64ff424c-dd1b-4db6-adb8-bc620f5d8d4f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 03:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:00:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12cde6d5-3d6c-4f1e-9a71-feb11fd27b7a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 03:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:05:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"36763777-b0bc-4807-a236-48c9eaeea7b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 03:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 03:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:10:00"}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bea125cd-fcef-400d-9bdd-0561186b3c02","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 03:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 03:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:15:00"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e516293-8489-4cee-9154-2dad8595191f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 03:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 03:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:20:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c9fe51d-a077-4594-8593-8aee00ff638e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 03:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 03:25:00","totalConnections":1}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56e944e8-0a84-4f94-bc4b-209ba41899d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 03:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 03:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:30:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a0e879ec-0cf0-42ea-add7-bc4221a67903","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 03:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 03:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 03:35:00","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12313e01-6fc3-4a75-be1c-4a74c5eef7d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 03:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 03:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:40:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eba98e20-351b-4d5d-8689-8752766bcbe7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 03:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 03:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:45:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"74eaae95-efcd-4149-aad7-0f8bb3d276dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 03:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 03:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:50:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1287ef59-3aab-475f-a1bd-b3797ad23fd2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 03:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:55:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f67e360a-0be3-4220-bde8-f5481ee95510","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 03:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 04:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:00:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"249867d6-8cd6-4a65-9fc0-9836359a9e65","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:04:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7df02ca4-dff6-4b05-820d-029445451fbf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 04:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 04:10:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"046ceb01-ae7c-4467-a551-3bcdf4bbe0d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 04:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 04:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:15:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56c22457-9b24-4112-97c9-3857010ec9d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 04:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 04:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:20:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eac2335a-a2ee-4665-9793-fbc12ad195b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 04:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 04:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:25:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"127419fd-5353-459e-b336-4f817f945cf5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 04:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 04:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:30:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8db22b5-3bca-4b83-bd3e-52a0c391777d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 04:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 04:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:35:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb99b831-a237-4b93-bf46-ecb369e5c6fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 04:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 04:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:40:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"abb11c60-7e90-4b89-962f-438093233f51","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 04:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:45:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aaa4d2d9-ad7e-4145-a55a-f06aa81d4002","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 04:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:50:00"}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0c6c2b24-4477-4dc6-8869-69f407c76767","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 04:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 04:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:55:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6b26dd6-1a64-4ddd-a163-1f5790cdd870","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 05:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:00:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"48de1786-e469-4baa-9ca4-bcb828cc85a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 05:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:05:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ca78fa9-98b1-4bc8-b110-106e7be513d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 05:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 05:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:10:00"}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f9632ef-5802-4007-ab31-a2dad866e0f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 05:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:15:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"18f5041a-fe1b-44e3-b5e1-943ddcf9a9ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 05:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 05:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:20:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"274585d2-ff96-44a5-bf3f-ac533888e9b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 05:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:25:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"156e17ca-90c6-49c7-9a6e-756a45b6dfef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 05:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:30:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25b2cd98-ca7a-45fd-b080-249ecb67decb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 05:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:35:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0fcab8dc-2f76-46e1-a39b-a5dea55d102a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 05:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 05:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:40:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ba96f05d-37ac-4811-86db-9576fb4e4204","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 05:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:45:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7835bb83-beba-4b2a-9ae6-e78a4d715411","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 05:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:50:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15118fb3-8c42-4b91-9a5f-07f240850ea1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 05:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:55:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dbf0fedb-dd74-4992-86a4-9f7a888a4a14","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 06:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 06:00:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"175c7fcf-0979-439b-9653-45b39fc70cfe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 06:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:05:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3f496fde-2deb-4551-a805-e2b3ca7f3d11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 06:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 06:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:10:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7606802-79d5-41ca-b5d2-f8f95c866d05","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 06:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 06:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:15:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3a7cbef5-f381-4569-8f40-667602dbecaf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 06:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 06:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:20:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9feb388f-5557-4cff-89fc-2ac9c869c9e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 06:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:25:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a1b48054-ccec-4a55-855e-a25b4dfa6daa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 06:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:30:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb3ff6bc-5cfb-4587-92db-bded2c607103","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 06:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:35:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6554529-67af-4c95-af88-a1735bb8ff6f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 06:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 06:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:40:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1ac367f-26b7-4cf9-b41c-ac56af7f387e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 06:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:45:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e388e918-ff22-4082-b786-8b547cb6f1c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 06:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 06:50:00","totalConnections":1}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"25cc047c-1781-4cc8-92ac-e8269e2fc28a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 06:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 06:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:55:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"077f42a8-526c-497a-9a88-c7a423fc6144","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 06:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 07:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:00:00"}
{"durationMs":1.7,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7a6851e-c1cd-4dee-816a-bcdc02aba440","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 07:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:05:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dbb767e4-50fd-464d-892f-1ca8ce83d911","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 07:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 07:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:10:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02016d5f-1ac7-4802-873b-f1d15ae0c162","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 07:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:15:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"23939b69-b20d-4243-bb87-e3503b5d1d3f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 07:20:00","totalConnections":1}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9be5ad5a-44fa-4490-b379-e9518751aa7f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 07:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:25:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d4572ef-4895-48ef-b0e5-66871bc5a839","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 07:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 07:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:30:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0fb45a27-1856-414d-a7ac-2a7eb88d3ca9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 07:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 07:35:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"354761ed-602a-4c81-8a02-23175b704d42","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 07:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 07:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:40:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c8bed68b-e9b5-4e5c-acdb-d317d96b8e00","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 07:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:45:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6cad785b-212e-4ec2-8a06-8f58fbf324c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 07:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 07:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:50:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c452490b-c280-4340-8ed3-03f8f0f104ab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 07:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:55:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ec83d6c-0a92-460d-a931-137c0b1c2454","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 07:59:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-06 08:00:00"}
{"level":"error","message":"[CRON] Library overdue check failed: Cannot read properties of undefined (reading 'findMany')","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findMany')\n    at cron.schedule.timezone [as _execution] (/home/aereuxky/cbcsms-backend/src/jobs/library-overdue.job.js:14:56)\n    at Task.execute (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/task.js:17:25)\n    at ScheduledTask.now (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:38:33)\n    at Scheduler.<anonymous> (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:25:18)\n    at Scheduler.emit (node:events:519:28)\n    at Timeout.matchTime [as _onTimeout] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduler.js:30:26)\n    at listOnTimeout (node:internal/timers:585:17)\n    at process.processTimers (node:internal/timers:521:7)","timestamp":"2026-09-06 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 08:00:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-06T05:00:00.351Z","service":"cbc-sms","timestamp":"2026-09-06 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 08:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-06 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-06 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-06 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-06 08:00:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bbcd8b7a-3822-4822-8e10-662e746f790c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 08:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:05:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"40fe955f-f22a-43c9-b5d8-31bb5569ba93","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 08:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 08:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 08:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 08:10:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46d9c466-1e2d-4125-b3b7-3f4305eb3797","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 08:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 08:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:15:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ef61312-a1c8-4869-a3a1-0470690254f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 08:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 08:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:20:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ed30421-a081-4552-a21b-9d8434bee5d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 08:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:25:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"579bf403-a812-48ec-b38d-6b7de84e3500","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 08:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 08:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:30:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"06b56183-9823-4e54-a203-ec6198f91aa7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 08:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 08:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:35:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 08:35:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 08:35:01","totalConnections":1}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"141ecedd-92f4-4dfc-b724-1f60c35f6d59","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 08:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:40:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d45bcfc9-d2ca-43ee-a678-e3f67f88ad91","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 08:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:45:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"19175f10-7772-4cc9-b23c-b705cca01d43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 08:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:50:00"}
{"durationMs":1.67,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81cfc2da-f065-4880-b4a4-f17f9b662965","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 08:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 08:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:55:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1cf095d2-b713-49a1-815f-c5a1c601e1cc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 08:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 09:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:00:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d6e4664-0d83-4c13-9c52-2b698d584927","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 09:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:05:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d110990c-acc5-424b-943c-b4e8a374b81e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 09:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 09:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:10:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b852601-257e-4c21-b0f6-930c1b10fa9e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 09:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 09:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:15:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1194f5fd-3511-4496-b9d5-7cfccbc06d39","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 09:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 09:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:20:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"caeb879b-ad50-47e8-a252-b0c78fdb19b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 09:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:25:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4bcb350a-c9ab-4ea8-8cfb-2e54220b08dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 09:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:30:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"623219f9-2f60-4b05-8f27-6b36f28be319","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 09:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 09:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:35:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3fc2c1a6-a365-4afd-9feb-1723ba6e6ad1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 09:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 09:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:40:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de8710fd-d828-4403-924e-cb832e81958f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 09:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 09:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:45:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70397426-95bd-4f0a-b3e6-5ef0bfc7faa4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 09:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 09:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:50:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3828e9ce-cdef-45e1-8d6e-1e8a396793bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 09:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 09:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:55:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e49345f9-94a3-4d10-93bc-6950b7e8dfc1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 09:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 10:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:00:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"26524d7b-13b8-4c31-b2e4-e851b3704b61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 10:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 10:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:05:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"42e23927-aef1-4c5c-9cfa-7f9ce08aba8e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 10:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 10:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:10:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a908266c-747f-4820-b85b-b90d4d93cba3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 10:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 10:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:15:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e43698e-b948-40c1-9b19-b125e099797f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 10:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 10:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:20:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"834cf3b8-f61a-433a-9ab9-a84610a0d0f1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 10:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 10:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:25:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f23e17b9-0436-436a-8d0e-a51617f029c8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 10:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 10:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:30:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f813f6f7-77d1-44a2-9376-8cfdec41b0e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 10:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:35:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eff333bc-afbd-4ec1-92a5-fae3a4799044","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 10:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:40:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4175514b-fa1a-43a7-903d-bf45b5a9c14c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 10:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 10:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:45:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c11b8b7-62b6-408e-a049-3818332572f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 10:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 10:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:50:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e5eaa102-994d-4d3e-ac4e-f6396e733061","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 10:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 10:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:55:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ded40fba-d7cc-4f54-a2b8-d716e6879dca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 10:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 11:00:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 11:00:01","totalConnections":1}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"83e77a15-ca31-4337-9530-6fb1d70d6a1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 11:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:05:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aea3ed46-3815-4d56-8fe7-c7015609cfc3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 11:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 11:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:10:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d5c88fb9-84c9-46dc-a7c5-10cce5a576b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 11:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 11:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:15:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4e65300-6522-4100-a439-a893c771767e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 11:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:20:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4dcd1ec-a28a-4702-bb16-621ad7e89e44","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 11:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 11:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:25:00"}
{"durationMs":1.45,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e92cae1-6407-4171-a2d3-95c4b0518ecd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 11:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 11:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:30:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"88e39990-7612-4ae9-bc22-baaa246b42df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 11:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:35:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"93ac6462-964b-49df-ae65-4852e6d977ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 11:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 11:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:40:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7a14f07b-066d-4bea-9c4e-68c02a367695","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 11:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:45:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cb8b588e-b4f4-4e47-9d50-71e8312a6dc0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 11:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 11:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:50:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c267eb02-8bca-4e0e-87d3-581559669817","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 11:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 11:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:55:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b15c8554-5924-466f-ba41-c557bedd1e5e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 12:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:00:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6b1c1cd-8f61-4d6b-8a38-eb4b8aef0239","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 12:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:05:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d2b88280-f693-4311-97f5-14c56395350b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 12:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:10:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a45db765-8f2c-4430-8ba6-d3804664d50b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 12:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:15:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bcd7883c-7176-489d-a666-5c8904f7d63d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 12:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:20:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ad627a0-7062-4c0e-a28b-9c1d3f12bf4f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 12:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:25:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6721d6b9-db7b-49b0-bf36-cfa5ff455d18","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:28:00"}
{"durationMs":2.22,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00cf9d2c-78a7-4183-90df-6a3dce053211","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:28:39","userId":null}
{"durationMs":131.98,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"8af4ae45-b80b-49eb-98c3-28d832040a80","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 12:28:44","userId":null}
{"durationMs":3.71,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4160862a-a0be-41b5-a82e-60aae2ab82c6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 12:28:45","userId":null}
{"durationMs":3.35,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f89cb48c-9347-4123-afb8-05273d35cdbc","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 12:28:45","userId":null}
{"durationMs":3.61,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"a14aa16e-adcb-458d-a1f4-247951548068","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 12:28:45","userId":null}
{"durationMs":3.87,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"ffe22709-10ed-4e69-932f-050e855cac46","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 12:28:45","userId":null}
{"durationMs":3.36,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"970681f9-52f3-41f9-8be0-0158b17e22e2","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 12:28:46","userId":null}
{"durationMs":3.74,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"eaa5af16-6f70-459f-961c-10ff883b6e5a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 12:28:46","userId":null}
{"durationMs":3.2,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"07decd3d-3bfb-4e3b-b7a7-dde08345927e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 12:28:46","userId":null}
{"durationMs":2.23,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments","requestId":"6340a0f2-b13b-4ae8-a8b1-5714cf053415","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 12:28:46","userId":null}
{"durationMs":1.89,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300","requestId":"cbcd0229-4e40-4243-9adb-73aa338082d9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 12:28:46","userId":null}
{"body":{"refreshToken":"[REDACTED]"},"error":"jwt expired","ip":"105.164.56.195","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"TokenExpiredError: jwt expired\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/jsonwebtoken/verify.js:190:21\n    at getSecret (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/jsonwebtoken/verify.js:97:14)\n    at module.exports [as verify] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/jsonwebtoken/verify.js:101:10)\n    at verifyRefreshToken (/home/aereuxky/cbcsms-backend/src/utils/token.js:17:14)\n    at Object.refreshAccessToken (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:575:19)\n    at refreshToken (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:43:38)\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:149:13)\n    at /home/aereuxky/cbcsms-backend/src/middleware/validate.middleware.js:57:9\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:119:3)\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)","timestamp":"2026-09-06 12:28:46","url":"/api/v1/auth/refresh-token"}
{"durationMs":38.33,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"9fd7aebd-811b-4301-8c60-d2cb36e40508","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 12:28:46","userId":null}
{"durationMs":1.56,"ip":"105.164.56.195","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7043862-9bad-4eba-a775-cd8250559e66","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:28:47","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 12:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:30:00"}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a7ee6c9-e508-4fb0-8190-7a8b43300ec7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 12:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:35:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22eff687-7635-49f5-bd6c-84a9b215bb7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 12:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:40:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d45ec993-fe97-4238-970c-afd8532f4270","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 12:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:45:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"53655246-7c92-48dd-a622-ee2b3cf92d3c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 12:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:50:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"20d7db7b-74e0-4891-9f5c-0187ffcb2bc8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 12:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:55:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3c51b3c9-5426-4314-bf09-4c40286852fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 12:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 13:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:00:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"681e59ee-b36e-44ed-8934-59f8b328596e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 13:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 13:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:05:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce987a28-41aa-4bf9-9fbd-e6c2bf0ff96e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 13:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 13:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:10:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"191bf42a-3b1f-462b-9de1-a7d0053683a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 13:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:15:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51e621c9-95f0-482c-b465-0cccd619b4b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 13:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 13:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:20:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"740c2223-5c66-4bf1-80eb-81a31856d72e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 13:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 13:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:25:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"59ce4fe2-5665-4806-9114-7aa7f0d5447f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 13:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 13:30:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 13:30:01","totalConnections":1}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dd86591d-9edc-4fa6-b45b-2dbc3d048ad0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 13:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 13:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:35:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22dbceb2-f923-46cc-a2c8-c6729842d973","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 13:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 13:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:40:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7f276e0-1186-42e9-b876-a561392c3111","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 13:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 13:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:45:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd698d8d-2a8c-4e9f-8e61-036f8fb17dd9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 13:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 13:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 13:50:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"de8c2a9f-defb-45db-9fdb-448624c31038","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 13:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:53:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 13:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:55:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7d5798ca-5016-4b08-b231-416ef04b6d1c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 13:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 13:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 14:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 14:00:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a283076b-c54d-4979-b424-91fd170c1b7e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 14:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:05:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af683d3b-f97a-4ef6-a2a2-ae86be4db8b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 14:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:10:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be6e9701-ef2c-41e4-8d83-591746264a0a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 14:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:15:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c738baf2-935e-4dc8-b087-03683f551a04","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 14:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 14:20:00","totalConnections":1}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72ab6633-7d2c-48a0-8814-cf475fcbf157","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 14:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:25:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"02ff7481-afdf-449a-ba60-a7ac6519a52c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 14:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:30:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4aa0d77-7333-4441-9dae-024f29b1cba5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 14:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:35:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"969f69ac-3b14-4ec8-b820-f9a0689b924a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 14:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:40:00"}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8869b2e7-064c-46a5-a8d6-93af1fee7e2c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 14:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:45:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c64af9bf-444b-4268-b96e-51380c8935ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 14:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:50:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fe771050-dbda-4141-9afe-8c0aa937afbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 14:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:55:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4dc01809-4917-4ab6-a82c-7584240ac883","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:55:01","userId":null}
{"durationMs":1.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cfc996a3-3bf9-4266-aa73-d08c009688d2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:55:11","userId":null}
{"durationMs":1.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2ffd407-e0fc-4806-a977-4136a5b2e17b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:55:24","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:58:00"}
{"durationMs":0.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef1d4920-e50d-467e-99a4-eb03aad5fb90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:58:13","userId":null}
{"data":{"id":null,"label":"Continue","name":null,"type":"submit"},"durationMs":159,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/onboarding","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 14:58:39","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fb5fa445-c67d-4cba-a2a7-a7fe06658d0a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:58:39","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 14:59:00"}
{"data":{"id":null,"label":"Tables: Search, Sort, Paginate, Export","name":null,"type":null},"durationMs":80,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 14:59:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4bb44396-3e3d-4980-9547-2024f172d0a8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:59:07","userId":null}
{"data":{"id":null,"label":"Sheet Forms (Slide-in Panels)","name":null,"type":null},"durationMs":77,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 14:59:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d5991b0e-a7c2-490b-815b-d81ef3bf212c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:59:27","userId":null}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":192,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/user-guide","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 14:59:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"db78d5e6-786e-467c-bd2c-819872642c9b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 14:59:29","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 15:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 15:00:00","totalConnections":1}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"afe39415-885f-49d8-aa3c-ba2378fabe0e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:00:02","userId":null}
{"durationMs":1.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8a099d1a-8329-4375-9474-32d61686d440","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:00:16","userId":null}
{"body":{"identifier":"izraahoficial@gmail.com","password":"[REDACTED]"},"error":"User not found","ip":"154.79.248.144","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: User not found\n    at Object.login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:389:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:34:20)","timestamp":"2026-09-06 15:00:38","url":"/api/v1/auth/login"}
{"durationMs":94.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"1c9c6575-c59b-4efd-a0ce-1c008030b45c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:00:38","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":178,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:00:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":639.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:00:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bf56c223-7abb-43f0-a958-20c1a9811f24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:00:38","userId":null}
{"data":{"id":null,"label":"Create Account","name":null,"type":"submit"},"durationMs":65,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/onboarding","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:00:41","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1c59e619-6dbe-435e-a55a-d351897d6c8b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:00:41","userId":null}
{"durationMs":0.76,"ip":"197.136.9.5","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8fce6a39-b642-4f37-a00c-854fce0fc4a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:00:42","userId":null}
{"durationMs":1730.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/signup","requestId":"f869e0b8-2a60-4807-bb78-23c1b27de4dc","schoolId":null,"service":"cbc-sms","status":201,"timestamp":"2026-09-06 15:00:42","userId":null}
{"data":{"method":"POST","status":201,"url":"/auth/signup"},"durationMs":2955.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:00:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aba75b44-8b22-4052-8dfe-059b59c3c5d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:00:44","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:01:00"}
{"data":{"id":null,"label":"Proceed to Sign In","name":null,"type":"button"},"durationMs":16,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/onboarding","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:01:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9e5fe5f3-14eb-476e-add9-485a673322b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:01:59","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:02:00"}
{"data":{"from":"/onboarding","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:02:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/onboarding","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:02:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e582e2b6-fb01-4614-ad9c-d912492fcd87","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:02:00","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":22,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:02:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fe7ac106-8c71-4ce4-8e68-e19fd66763da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:02:05","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":25,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:02:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6a382cc1-5176-48eb-9572-a944846eb961","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:02:07","userId":null}
{"body":{"identifier":"karimcharles1986@gmail.com","password":"[REDACTED]"},"error":"Your school account is pending administrator verification and approval. Please contact support via WhatsApp (+254 700 000 000) or email support@drewskysoftwares.com to activate your account.","ip":"154.79.248.144","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Your school account is pending administrator verification and approval. Please contact support via WhatsApp (+254 700 000 000) or email support@drewskysoftwares.com to activate your account.\n    at Object.login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:395:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:34:20)","timestamp":"2026-09-06 15:02:10","url":"/api/v1/auth/login"}
{"durationMs":644.96,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"cb9b8193-ba0e-4cc2-9966-b0b479cbab1a","schoolId":null,"service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:02:10","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":60,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:02:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"525142ee-5c9f-4a09-abd6-fb6b0b148f87","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:02:10","userId":null}
{"data":{"method":"POST","status":403,"url":"/auth/login"},"durationMs":997.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:02:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"21767294-c960-4aae-805f-e93620b115a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:02:11","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:04:00"}
{"body":{"identifier":"karimcharles1986@gmail.com","password":"[REDACTED]"},"error":"Your school account is pending administrator verification and approval. Please contact support via WhatsApp (+254 700 000 000) or email support@drewskysoftwares.com to activate your account.","ip":"154.79.248.144","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Your school account is pending administrator verification and approval. Please contact support via WhatsApp (+254 700 000 000) or email support@drewskysoftwares.com to activate your account.\n    at Object.login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:395:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:34:20)","timestamp":"2026-09-06 15:04:16","url":"/api/v1/auth/login"}
{"durationMs":39.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"29cc5a9f-f1d6-4495-a460-174fd69f254b","schoolId":null,"service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:04:16","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":32,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:04:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5053afab-738e-43e5-8af2-0bacf46fae65","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:04:17","userId":null}
{"data":{"method":"POST","status":403,"url":"/auth/login"},"durationMs":897.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:04:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":0.8,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"53bbc875-f8e4-4ce8-ae21-78ffc6b9cf66","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:04:18","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 15:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:05:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bac3a61a-5700-45d1-b72c-30b1d2613294","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:06:00"}
{"durationMs":1.26,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7f264f10-57d8-425a-bd2d-0f6c8d002e14","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:06:35","userId":null}
{"durationMs":2.27,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"9f675c9b-098a-405b-afc4-0829d59b8651","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:35","userId":null}
{"durationMs":2.99,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ff0ac44b-327b-41ba-bd2b-25bac708364c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:35","userId":null}
{"durationMs":2.96,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ff9da9f9-855d-4b0d-ab69-9ee8abaa6349","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:35","userId":null}
{"durationMs":2.43,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"6ef7e433-8ab4-4149-8e3d-8fc85afd297a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:36","userId":null}
{"durationMs":2.03,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"57e7789a-1e84-4073-adff-388c5474ebab","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:36","userId":null}
{"durationMs":1.4,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"ebb02ff6-296c-47f4-917d-d82287a74839","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:36","userId":null}
{"durationMs":2.86,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"7590e143-a9f4-4076-aa34-e2d8b9e31c48","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:36","userId":null}
{"durationMs":3.2,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"fd90e436-2899-4f59-ae64-04c5f40f861a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:36","userId":null}
{"durationMs":2.37,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"929fde37-a746-4ca1-9eb1-7de0353c376b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:36","userId":null}
{"durationMs":1.15,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"3141134c-6013-402f-b03a-a376f024fa13","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:36","userId":null}
{"durationMs":1.43,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"dd866023-634a-44a8-ab32-f17a6e8cfe4c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:36","userId":null}
{"durationMs":3.01,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"6f85de41-b019-40e9-8ec9-6dd32c29d6ee","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:40","userId":null}
{"body":{"refreshToken":"[REDACTED]"},"error":"jwt expired","ip":"41.90.73.208","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"TokenExpiredError: jwt expired\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/jsonwebtoken/verify.js:190:21\n    at getSecret (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/jsonwebtoken/verify.js:97:14)\n    at module.exports [as verify] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/jsonwebtoken/verify.js:101:10)\n    at verifyRefreshToken (/home/aereuxky/cbcsms-backend/src/utils/token.js:17:14)\n    at Object.refreshAccessToken (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:575:19)\n    at refreshToken (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:43:38)\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:149:13)\n    at /home/aereuxky/cbcsms-backend/src/middleware/validate.middleware.js:57:9\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:119:3)\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)","timestamp":"2026-09-06 15:06:40","url":"/api/v1/auth/refresh-token"}
{"durationMs":5.31,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"be1528a2-dcb9-4cbe-8ace-a389b71accf2","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:06:40","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:06:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:06:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.94,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7988381e-a0ff-4dc6-b687-5b263b3eaf17","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:06:40","userId":null}
{"durationMs":1.77,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"36a9f084-ffcc-4122-8c57-639a5447183f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:06:41","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":20,"event":"UI_CLICK","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:06:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.83,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"978f2976-8031-4b7c-a96b-b7b085b9da43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:06:51","userId":null}
{"durationMs":675.7,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/platform/auth/login","requestId":"6de04d33-738e-4507-917d-92476f233df3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:06:52","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":53,"event":"UI_CLICK","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:06:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.52,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ec0acb83-1bd0-42cb-92b3-1e17c6063825","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:06:52","userId":null}
{"durationMs":148.69,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?limit=100","requestId":"16dad050-edcf-4e38-beb9-f95a66a88103","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:06:53","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/platform/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:06:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/login","navId":null,"to":"/platform/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:06:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.91,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"18e2f452-6694-41ea-8cef-790ccc6070c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:06:54","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":13,"event":"UI_CLICK","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:06:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":66,"event":"UI_CLICK","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:06:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.99,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"82d59337-41cf-46d0-ba1a-acf67f7beb08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:06:59","userId":null}
{"data":{"href":"/platform/schools","navId":"1788696414475-143439","text":"Schools (Tenants)"},"durationMs":null,"event":"NAV_CLICK","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Navigation click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:07:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.85,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a74ea763-4f10-4235-ba39-cb62b7c275a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:07:00","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:07:00"}
{"durationMs":24.5,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?page=1&limit=20","requestId":"def98578-77b5-4fbe-9f04-856c476edf2b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:07:01","userId":null}
{"data":{"from":"/platform/dashboard","href":"/platform/schools","navId":"1788696414475-143439","text":"Schools (Tenants)","to":"/platform/schools"},"durationMs":2339,"event":"NAV_PATH_CHANGE","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:07:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","navId":"1788696414475-143439","to":"/platform/schools"},"durationMs":2339,"event":"NAV_STALL","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:07:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","navId":"1788696414475-143439","to":"/platform/schools"},"durationMs":2469,"event":"NAV_RENDER","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:07:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.91,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0cd0ed35-a966-4c61-abbf-ea7a5170c8dc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:07:03","userId":null}
{"durationMs":758.79,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/activate","requestId":"1777d592-813b-4aae-ac6c-47ff02fdb61a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:07:07","userId":null}
{"data":{"id":null,"label":"Approve School","name":null,"type":null},"durationMs":8,"event":"UI_CLICK","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:07:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.85,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee7888bd-9329-400d-b6d3-8741163ce679","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:07:08","userId":null}
{"durationMs":20.01,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?page=1&limit=20","requestId":"d5821756-18f8-4860-bd02-d0fb78480ef4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:07:08","userId":null}
{"data":{"id":null,"label":"View","name":null,"type":null},"durationMs":10,"event":"UI_CLICK","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:07:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.8,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8f63b631-383b-4621-8068-8328feb4a7f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:07:13","userId":null}
{"durationMs":41.87,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/usage","requestId":"b5bf628a-7243-4703-bfd8-97c940f3338c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:07:13","userId":null}
{"durationMs":47.43,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/plans","requestId":"b7970f97-4ef9-4a2e-a399-d8bf2f2a8c04","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:07:14","userId":null}
{"durationMs":135.88,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/details","requestId":"b4f481d9-7120-4b8f-b0b7-ddd07eac9d47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:07:14","userId":null}
{"durationMs":102.57,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/features","requestId":"d42fc01a-44be-46b7-9e1c-ed93569eb2e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:07:14","userId":null}
{"data":{"from":"/platform/schools","href":null,"navId":null,"text":null,"to":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:07:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","navId":null,"to":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f"},"durationMs":null,"event":"NAV_RENDER","ip":"41.90.73.208","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:07:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.26,"ip":"41.90.73.208","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4ae49006-0885-4327-ad59-9703ef2373da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:07:14","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 15:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:10:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"53cc9e9f-77e5-4aa7-a1a7-8ba434c15032","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:10:02","userId":null}
{"durationMs":1.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a27e49d7-0822-4fb5-8e1d-eddd0bb00994","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:10:36","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:11:00"}
{"durationMs":1.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ebac4e9f-016b-4b8d-964a-dae4767eaf31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:11:58","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:12:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":64,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:12:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4a5d8e98-8d31-42c7-85c3-c047d1c3cc88","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:48","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":88,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:12:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cacb61bb-cb45-4533-abc5-2338e0e26444","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:49","userId":null}
{"durationMs":1.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b514a06-fe7d-4e7c-849c-8fab5a0c6f06","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:50","userId":null}
{"durationMs":1406.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"b6e7ebcd-84c6-4554-aa04-b06ecbf685e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:50","userId":null}
{"durationMs":146.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"f1d084ea-b556-4d8a-9af9-cf9d6d678f28","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":241.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"55f3a11b-9031-41a4-aa04-7a687c035c8b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":116.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"08caef69-147a-4fc1-8399-5e95a920c360","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":132.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"9f0b94fb-b0af-4ce6-9209-4eb3fd47d421","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":136.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"7d3c9e41-aff7-4fca-b245-350b0fd4859f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":128.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"3c957054-f783-4a92-9776-b855fe0b4f2f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1729,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":482.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.48,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1b097592-9ac3-4b9a-865b-b348ba44cd90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"405978d6-656d-4b16-8097-77d5d35e30da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":134.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"73889b08-5be5-45fc-b6e4-48eb2c710c7d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":149.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"62236a5a-094d-4440-9e09-9aaf4b9c4bd4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":144.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"e36d3fca-96a7-47cf-b5ae-db297850fc96","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":690.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1060.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1065,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1069.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1076.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"088240de-dc03-4bb2-846b-f97e3c5ff720","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":478,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"1da268af-d8b3-45ec-91f4-ce7a982ea832","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1600.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1609.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1613.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1615.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ab5206d1-9ec9-437c-a03c-213dce942bcf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":523.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"3383d8bf-0b47-46b4-bffb-97780af3d966","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":556.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"915aa34f-e5ca-45c2-bfd7-b605aa2e6c46","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":544.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"dd29fbb1-d3a7-49cf-988d-d8c4d1984b45","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":114.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"f0f4c87c-7ed0-4383-8aa2-329175e68ecf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":561.96,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"bbb48ee8-cac6-43fc-87e6-33357ad6f1b6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":137.99,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"89e942d6-4e4a-4010-82e9-f4ef99f4a0f2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":161.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"372c91a6-f1bf-407f-bf11-4a57f7056c6e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":791.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1027.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1032.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1170.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1184.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1190.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1196.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1662,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:12:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1c3fa836-8613-4f82-9b4c-0a9535cac380","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c269146-08f1-42b4-8130-a8e6bb6724f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:12:58","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:13:00"}
{"data":{"href":"/dashboard/students","navId":"1788696792811-556367","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a44d2967-926b-4c0c-b722-255f988487c8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"6b071c8f-4e7c-43c1-9768-100875fe79c5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":297.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"07c7bb72-aaaf-44b8-8de2-868d4bbf6d2c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":49.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"3df1a670-0042-4186-96ed-7e9396eeebd8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"99f9904a-45e1-4c3e-a80a-6880ec53a17c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/students","navId":"1788696792811-556367","text":"Students","to":"/dashboard/students"},"durationMs":4220,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788696792811-556367","to":"/dashboard/students"},"durationMs":4220,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788696792811-556367","to":"/dashboard/students"},"durationMs":4722,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":792.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"36f2aa9d-3283-42db-a88b-6efc11a0886c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":1058.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":1065.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":1070.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cd7c5e2e-360f-4911-aaf0-5ed02fcd107b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":199,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:13:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cf4e9512-f8f8-458f-a4be-b157ed2bd22f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:29","userId":null}
{"durationMs":869.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"b0fa7dce-8177-4077-93f5-b3a92a4db0ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:34","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":231,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:13:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2aebd7a2-42a0-4355-8f14-a04bce7d1bfc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:34","userId":null}
{"durationMs":55.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"1f2eef6b-b9eb-4bc6-9f3d-b609fda6c66b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":20.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"b12bb50a-c921-4265-9805-c3017c9601fa","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":27.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"5010b14c-fe55-44a2-8f67-9281b0e66ec5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.18,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"08313c4e-2ba1-443b-859a-e43c12c7f6b2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":65.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"2d976420-48c9-4875-b936-aebe496c8605","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":20.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"7f717a2e-aa42-4a4d-bb02-1809e36e6bc9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1232.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":704.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"db3f227b-44dc-4dd1-814f-c05bd6fc5145","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":64.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"ef7c4dd0-45f2-468f-b23f-be99ea543b42","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":75.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"be0e9961-97ab-4b70-92b1-cb06931a29b4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":73.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"390ba22a-9a38-4eb4-8d0d-9b67389276b3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":63.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"a16f557b-8020-4ad0-86eb-14c6e4470140","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":481.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":484.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":486.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":733.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":734.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6997cc18-155c-4037-ba04-e6ba8706fc84","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"e58fdd47-814f-4093-a52d-5d2417153d70","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":103.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"29f1c75e-e454-4211-b22c-7b58d79910df","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":138.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"82b4fd39-95b1-437a-ae9c-43fd6bc44202","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":160.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"ab6ed5e2-81a1-4b42-996f-653a4e87ab5c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":138.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"1717584f-1f4d-48a6-84c5-a883e04990b7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":161.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"eaf610cd-1820-491b-a894-18b08e3ddcf6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":41.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"b5fb238a-7ffe-407d-b001-0f5015f65d30","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":47.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"2a4212cc-faf2-4ae9-8822-067fcf28ad0f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":884.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":893.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":901.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":958.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":412.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":441,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"31cf444f-58ce-421c-8280-16ba4f828c97","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":473.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":479.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":481.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":524.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":985.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":988.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:13:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e0f7431a-6564-459c-8414-5ea3071477e6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/years","requestId":"46bb89df-da87-4444-b9ec-b54a71e85a5c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"be35710c-65b3-4c84-9bd1-b15ae3ccda9d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/promotions","requestId":"06244ebd-8c14-44af-9d78-79c39314029b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.03,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/promotions/stats","requestId":"a362cb95-b9d3-47ae-bd4d-4d60cf572056","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Promote Students","name":null,"type":null},"durationMs":271,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/years"},"durationMs":603,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":690.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee21e558-0871-460b-bb0f-eba6e1d3b88d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/promotions"},"durationMs":1012.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/promotions/stats"},"durationMs":1084.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"addb1387-dad1-492d-afd4-5862e9199fd4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a5b675f7-784c-40b9-868b-a1fb2e4c5ebf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:13:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8c35634f-8336-472b-acc9-2b357b7cef5d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:13:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":382.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":741,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:13:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"31645492-4908-485f-a865-c68b28c4e6f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:13:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:14:00"}
{"durationMs":74.8,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"82a71532-db17-4f58-8036-64fa5f2bcbbd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":206.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"f9bac19f-7370-43e7-8909-5e3c8d352a97","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":92.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"5bb62b54-8dc0-4330-990f-beb3ff8c18e9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Dashboard","name":null,"type":null},"durationMs":535,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":470.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":577.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":786.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fd2106dc-98f5-4b7c-9d4c-9351401f6c78","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/assessments/exams","navId":"1788696872065-677592","text":"Exams"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3de326d6-7f44-46ba-bb19-ae37005b223d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":50.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f424f5ef-d7eb-48ca-85fc-f3f40812282b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:14:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":61.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"385f5bc8-d21e-4070-a080-a437533146e0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:14:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":53.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"033575b2-c273-4545-9170-7fc507d9e510","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":48.25,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"fe891b0f-d93d-47f3-b224-339887d93d85","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":23.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"4f16f9af-add8-498f-b51b-03fa5392b7fe","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":266.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10","requestId":"e3817266-5da4-4999-b301-a3213d2d2fdf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":428.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":429.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":"/dashboard/assessments/exams","navId":"1788696872065-677592","text":"Exams","to":"/dashboard/assessments/exams"},"durationMs":1421,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788696872065-677592","to":"/dashboard/assessments/exams"},"durationMs":1421,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/assessments/exams","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788696872065-677592","to":"/dashboard/assessments/exams"},"durationMs":1614,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":416.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":419.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":517.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6845dbdb-96e9-47fb-9998-4fdd013b4123","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":582.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0c86351f-5459-4429-9da2-8027caff1b62","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"All Terms","name":null,"type":"button"},"durationMs":281,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8b4882df-27a8-436c-a701-ae62d7850d6f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:42","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"All Types","name":null,"type":"button"},"durationMs":222,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"da076e6a-8fe7-4df2-aa20-3daa103ba7f3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:46","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":293,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ce90aecb-6cb1-4fae-9067-7f9f198761bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&type=MID_TERM","requestId":"0c883db0-4340-4164-8def-3901f0785bc1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"539760cc-9474-48dc-a10f-71d3b9c955d2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:14:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":72.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"2456a830-76a3-45be-82b4-62822202bb91","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":334.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:14:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"50b70a97-3942-4e0c-bcc5-809bbf7786f8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":60.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"436d3534-b8ec-423b-ba1d-273177506f5d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:14:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":68.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"63bbba4e-fcba-4519-a850-b888d8565646","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:14:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788696884094-984934","text":null},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":"/dashboard","navId":"1788696884094-984934","text":null,"to":"/dashboard"},"durationMs":596,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1788696884094-984934","to":"/dashboard"},"durationMs":596,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1788696884094-984934","to":"/dashboard"},"durationMs":1130,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":564.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":569.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"06e83f6b-ef69-4ecc-9f55-b8ea1c9121db","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":707.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":712.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1b20c08a-f22a-4775-b72e-dcd596215ee7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"86fc108d-2d54-4851-91ef-05428f110693","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:14:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1fc8394a-5393-45fd-88ee-024649a678a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:14:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":415,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":339.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:14:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"039b769f-4bd3-4d3b-a5ab-a5060ed850d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:14:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 15:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:15:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9a90250b-83fd-404e-a3a7-ed348cf61de1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:02","userId":null}
{"durationMs":30.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"268f377b-9cba-4aa7-9efe-f66be536f336","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"16a59b1d-d7ac-404f-a4aa-e4177fff8732","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1788696902699-462477","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/students","navId":"1788696902699-462477","text":"Students","to":"/dashboard/students"},"durationMs":669,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788696902699-462477","to":"/dashboard/students"},"durationMs":669,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788696902699-462477","to":"/dashboard/students"},"durationMs":1365,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0253c1f5-dfd6-4222-a381-59fcf7b5b209","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":574.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":749.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a2abafc2-55cf-4593-bedb-07f6e55da603","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788696908010-621082","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":"/dashboard","navId":"1788696908010-621082","text":"Dashboard","to":"/dashboard"},"durationMs":524,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1788696908010-621082","to":"/dashboard"},"durationMs":524,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1788696908010-621082","to":"/dashboard"},"durationMs":963,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f1235511-0391-4624-b845-370983e10450","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/payments","navId":"1788696914386-802819","text":"Payments"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6783ab7b-0493-4299-8690-6253522a4e50","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"e48c27f1-01e3-420b-a03f-0fd01b5767f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":11.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/banks","requestId":"69ec7dd4-f3ea-4f90-975d-2984c811d707","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:20","userId":null}
{"durationMs":743.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?studentId=","requestId":"03b4d136-06c4-4d7f-9030-20c824a04e2d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/finance/payments","navId":"1788696914386-802819","text":"Payments","to":"/dashboard/finance/payments"},"durationMs":1133,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788696914386-802819","to":"/dashboard/finance/payments"},"durationMs":1133,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788696914386-802819","to":"/dashboard/finance/payments"},"durationMs":1260,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":545.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/banks"},"durationMs":633.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c20ebed0-6f70-4ace-8880-af73aedc6e03","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":1257.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"060a38d3-3a47-4a4a-a914-4da4b7a2e2be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"53f166cd-3df4-484e-9e9a-4fc99e3e7cbe","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:15:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":82.99,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0fb5aeda-4feb-42ee-b576-b152bfaf4168","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:15:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1084.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:15:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1073.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:15:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2673818c-4658-4f49-af98-f81daca8bb5d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard","navId":"1788696939980-519357","text":null},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","href":"/dashboard","navId":"1788696939980-519357","text":null,"to":"/dashboard"},"durationMs":548,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","navId":"1788696939980-519357","to":"/dashboard"},"durationMs":548,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","navId":"1788696939980-519357","to":"/dashboard"},"durationMs":1194,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"80950960-61ce-4ae5-aeb7-73ef074931d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":43.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"e8a5fc27-899e-45ec-98f5-8f7a5db96e96","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"284b232d-b131-4a0b-9e6f-7a8a0ed85477","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:15:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":52.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"61a2502b-b730-4ef3-877e-08ce32052014","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:15:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"325916ce-f4b0-40dd-9a8d-24e5a88535de","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:15:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/assessments/exams","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:15:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/assessments/exams","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:15:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":395.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:15:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":710.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:15:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":745.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:15:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c59c8807-48c3-4128-ba6e-8cf1fe258a7e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":65.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d2f22409-9d29-4cc6-9c9b-0acbfb549a46","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:15:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1049,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:15:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":18.52,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4c619b58-8812-4637-af30-758728a21531","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":76.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"7e2a7e10-741c-48c4-91db-e13c43f94fd4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:15:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":499.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":360.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:15:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b55011c1-e25d-4a74-89f5-7f2ee97b0019","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:15:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:16:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":268,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:16:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4c0245fe-3a0c-4a05-8f6f-02aa0c168c1a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/assessments/exams","navId":"1788696965454-669","text":"Exams"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:16:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bc29d5f7-331b-4dd3-aab9-d664eb4c97d2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"9927e847-c44e-444d-b865-9ce1ab0ff08a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.8,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"ac9158a1-f975-4f0f-8f6c-8789e37e547b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":147.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10","requestId":"7e49ca59-43a6-43c4-8bf2-e3b0fc3045a9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.99,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"2d132290-7ab0-4cac-bae7-37968ad400e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/assessments/exams","navId":"1788696965454-669","text":"Exams","to":"/dashboard/assessments/exams"},"durationMs":1002,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:16:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788696965454-669","to":"/dashboard/assessments/exams"},"durationMs":1002,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:16:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788696965454-669","to":"/dashboard/assessments/exams"},"durationMs":1186,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:16:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":490.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:16:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":663.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:16:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":668.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:16:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c3926d42-a0c1-42e9-a7d7-15750dab07db","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":87.58,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"8c03db13-afbf-42fa-9e47-db818d23912c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":890.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:16:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":460.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:16:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"09771a25-51ff-45f6-8611-ee662d1991be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/communication/whatsapp","navId":"1788696970550-579660","text":"Open WhatsApp setup"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"73d2a42a-5039-4b96-b85b-e3988eca605d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"4557b392-b998-4a58-a369-43b9353e42b8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"8b8967d6-42b7-44b1-a6dc-c73b24566998","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":50.8,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"c5023016-badb-4db5-84c9-2adf82db701f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:16:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":113.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/history?limit=1000","requestId":"62edc399-5dd0-41f5-ac0c-e653acb80ea1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":"/dashboard/communication/whatsapp","navId":"1788696970550-579660","text":"Open WhatsApp setup","to":"/dashboard/communication/whatsapp"},"durationMs":2357,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788696970550-579660","to":"/dashboard/communication/whatsapp"},"durationMs":2357,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788696970550-579660","to":"/dashboard/communication/whatsapp"},"durationMs":2459,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":457,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":472.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.8,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b29ad6f3-1d0c-4e16-8c81-f3b91abae910","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":806.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/history"},"durationMs":930.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"43f127c1-b309-48f9-8711-6f28d7ec29bf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":27.81,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"c619e084-5601-498b-b2e6-69a64111b864","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:16:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":382.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ce3de723-8384-4c96-aefc-2829482d44c7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:24","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":39.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"a6202a3c-1833-4449-8150-d7b07fb0a853","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:16:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":448.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e243ae88-635f-4750-8b97-f3b8dcf98b7d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":39.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"14178b4d-d4d6-4cd6-afe0-4a4f47f1af73","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:16:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":476.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"207d430d-d7d8-45ab-b964-95dca5bd7b81","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d1c107fb-7f09-41a3-b77a-feb38135d8be","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":74.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"de5bebd2-2f42-4317-a192-c2412bb486b5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:16:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":81.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4716fef5-d243-45f6-ae1a-d1f8871ddc79","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:16:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"65807ee4-76cb-498c-ad3d-c651c181e54f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:16:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":414.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":421.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":339.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"86bfcc6d-8d08-4035-8e39-8f7a3189ce1c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":36.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"384aa353-4605-48f8-b835-c5c81f6106ff","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:16:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":367,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8eace6ab-ffb6-4e05-9222-e41560fab314","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:46","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/communication/whatsapp","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/communication/whatsapp","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.48,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b8e206d7-879f-42c2-92b7-86f3597b3d8d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":111,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d13413d6-a4ea-4f3a-96f5-adea1d4010f3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:50","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard","navId":"1788697009558-505456","text":null},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:16:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c370fe60-7539-481f-a03a-51b4448d805d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:55","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":58.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"50906b68-6d24-4f02-8270-6bf43937fef7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:16:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"21f066be-4c43-4ce9-9c5f-ddd3e8affad4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:16:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":420,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:16:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":340.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:16:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ec90105a-dee8-4edc-ac6d-06fecf0359d7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:16:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:17:00"}
{"data":{"href":"/dashboard/finance/payments","navId":"1788697016822-781427","text":"Payments"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f78ba366-1190-418c-b051-ae91274dbbd2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":28.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"9166ba56-c0e9-4feb-b6fd-1c0237064284","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":21.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/banks","requestId":"2aefb3b9-86e6-45dc-b70a-50b89f80fade","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:02","userId":null}
{"durationMs":86.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?studentId=","requestId":"32a1abe2-1ff1-4a14-95cc-86caf1e47437","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Term 1 — 2026","name":null,"type":"button"},"durationMs":399,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"85f634ad-f4d1-4ace-8785-7eb7016d6143","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/finance/payments","navId":"1788697016822-781427","text":"Payments","to":"/dashboard/finance/payments"},"durationMs":989,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payments","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788697016822-781427","to":"/dashboard/finance/payments"},"durationMs":989,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/payments","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788697016822-781427","to":"/dashboard/finance/payments"},"durationMs":1095,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payments","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":314.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/banking/banks"},"durationMs":505.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":557.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.02,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c5215b1c-1e13-4ab5-bcb4-65da779fe01d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":137.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=cmp8gtpmp00d88bcn46m6jdkv","requestId":"581e3a75-a8ed-4f11-a7f6-87bccae33d16","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":421.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"25d55561-9d42-4e63-9483-73adbb7f1302","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":205,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"de75215f-d1e4-41ba-b597-4fa9bf357886","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/cbc/report-cards","navId":"1788697027178-529165","text":"Report Cards"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"09d98d1b-22f0-4963-a344-d4c436880a44","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":49.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"f3cef70a-0e1c-49e0-9db2-4de1a9afc7f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"a525d92f-2a3d-40c2-a1ef-d6d5e8bd4f72","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"94422d81-3754-4054-8a63-78948a242c76","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:17:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"2c475891-f23d-4e57-b7d2-c53490a5bb81","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":265.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments","requestId":"e8791be5-e792-4089-80e9-523759f39a83","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":400.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10","requestId":"ac255598-864a-4a21-83e2-d279ec9f482d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"0f622fa8-9d09-4bc1-918c-6b38d7c290ce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","href":"/dashboard/cbc/report-cards","navId":"1788697027178-529165","text":"Report Cards","to":"/dashboard/cbc/report-cards"},"durationMs":1726,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","navId":"1788697027178-529165","to":"/dashboard/cbc/report-cards"},"durationMs":1726,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","navId":"1788697027178-529165","to":"/dashboard/cbc/report-cards"},"durationMs":2065,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":361,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":369.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":691.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":697.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c7a50dc1-6dc7-4075-881f-48e0c099d585","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":333.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"37c3d5c6-a16d-4812-a33e-780f97b7dfcb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Choose method","name":null,"type":"button"},"durationMs":330,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:14","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7098f84a-73c8-4ae8-b885-196207c6d29b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":907.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":850.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":1066.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":1328.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9d00f1c1-255f-4cb3-ac1b-a00136799c0a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Bank Deposit","name":null,"type":"button"},"durationMs":231,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6e2da2a1-8008-4779-99e1-c4bdb4f3a26e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Bank Deposit","name":null,"type":"button"},"durationMs":234,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"80e4bb27-e4ff-46eb-9b5e-6c074b1c442e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Cash Payment","name":null,"type":"button"},"durationMs":219,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"46fc6629-9df6-4f7a-8a26-1c980496d407","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":107.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7ba08635-e455-44b4-98c1-5fd59172bf29","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:17:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":141.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"00289de1-03f6-4753-8c1b-c1ee2b25a1a5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:17:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":414.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":434.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8e5d7078-2470-4119-9a02-1538522e6326","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":79.48,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"c14921d0-166b-40e6-a46d-04fe9d32ac19","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":72.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"bc8a6760-d026-441c-825f-7620c7cb5b62","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:17:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":65.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"a4ce6b9d-604f-4096-bf2e-5baf1a59ce25","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:17:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":24.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"e04d4e69-2a95-435e-8a86-c0f2a9a0eb91","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:17:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/finance/payments","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/finance/payments","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":463.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":482.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":538.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":721.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:17:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c93f6b02-7997-494a-b251-8f562a86dca5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":58.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a1fde604-c2a3-4579-a33e-40a4ac6a2f90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:17:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"84fc4919-7153-4937-b843-fee877db20b3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:17:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":411.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":405.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:17:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cb9ae108-65fe-4c0c-85f0-8c3f827d9813","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:17:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:18:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":251,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":7.02,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1fdc6317-d15e-4ac0-a530-86d35086fc91","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/settings/audit","navId":"1788697108689-613331","text":"Audit Logs"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dfb089a0-1c36-4d5e-9bb3-498d04c2bf34","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/audit-logs?page=1&limit=30","requestId":"7e950544-7201-4d23-a344-ec71cabaa35d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":120.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/audit-logs/stats?days=7","requestId":"cf737908-01ab-4b17-add9-9f1927754e56","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":"/dashboard/settings/audit","navId":"1788697108689-613331","text":"Audit Logs","to":"/dashboard/settings/audit"},"durationMs":914,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings/audit","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788697108689-613331","to":"/dashboard/settings/audit"},"durationMs":914,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/settings/audit","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788697108689-613331","to":"/dashboard/settings/audit"},"durationMs":1185,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings/audit","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/audit-logs"},"durationMs":484.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/audit-logs/stats"},"durationMs":706.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5521ef07-8c24-4805-a162-10e51f03b221","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0610e8e6-f5a3-41eb-8e44-b50262f565b1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:37","userId":null}
{"durationMs":47.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0fd3e539-bd7c-4b87-bfbd-34a09ae3866d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:18:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":89.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9905a219-3f54-42e9-8deb-caf96104ff83","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:18:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"All Modules","name":null,"type":"button"},"durationMs":220,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/audit","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":335.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":373.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"67b9a2ab-6907-45de-a655-ece88ed559c2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"99df09a0-54b0-4e61-8e1c-39ed63889ec8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:18:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0ef34ea2-330d-4fe4-991f-a093ea6c04d7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:18:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.39,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b7944925-924f-4dd4-8956-97e5865c5f4f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"59dae276-4822-42f3-8e6c-0db1cec27130","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":81.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8f0c0c73-fff7-41ff-a7fb-c08ac16eb9e9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:18:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":149.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"e52a64a6-249d-4d44-8219-2c35463d7d5e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:18:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":107.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"799f058f-8427-42a8-a0a0-66022930bb80","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:18:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":172.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"f8863e38-41ce-40c7-943d-346e86cfc368","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":287.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments","requestId":"a8000911-bd9f-4783-91cc-7f196d3e5f35","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:18:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":353.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10","requestId":"1bddfcb9-fa9c-481b-9532-3cdf12ad729c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:18:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":462.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":482.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1005.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":1013.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1018.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1023.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":1369.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":1571.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3bc67e9e-7b0e-492b-a3ac-577699b35869","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":76.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"e245ae33-0671-4243-b878-fc4e180b9af6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:18:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":140.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"86afbf6e-1864-4418-9b0a-8036290603f2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:18:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1584.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":1606.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":424,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":628.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eea76f47-753a-4d6f-8380-a00ba99ca1a9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"db0f5955-3c6d-4993-b5d4-6b2f30dc7c4a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":67.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"a478481c-645d-4bd3-b618-130ec2854c85","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":75.99,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"ae7156b8-4320-4b32-835e-3fd9fda82b0d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"0db6cd7a-b0fc-44e7-b680-7f4d09da01dc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/settings/audit","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/settings/audit","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":395.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":404.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":407.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":754.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.62,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"51584d91-2261-472e-b092-4d16bb2f25fe","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:46","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":371.81,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/cbc/report-cards/publish","requestId":"647f602d-cef8-4ed5-a5db-6d81add94fd3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":224,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:18:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8f7c097a-a4c7-486e-9744-61dad14ad82d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":"radix-:rb:-trigger-list","label":"Report Cards List","name":null,"type":"button"},"durationMs":202,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Publish All","name":null,"type":null},"durationMs":103,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/cbc/report-cards/publish"},"durationMs":4513.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:18:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bccd0df3-96bd-414b-9aa4-8e23c6375e95","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":169.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"63f59b3e-3df6-4f5b-82f9-c7dfabebf33f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:18:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:19:00"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":6763,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"25679404-5ecd-48b0-beb5-95f4bbea2942","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/attendance","navId":"1788697160146-903169","text":"Attendance"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:19:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":37.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a6a30bd2-46bc-4eb8-aaec-c91327d73cc6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":60.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"0c361459-e3f2-404f-a906-0af38661484c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":23.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"cf46aec1-4bf4-42e8-9452-a2041ec403c9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":"/dashboard/attendance","navId":"1788697160146-903169","text":"Attendance","to":"/dashboard/attendance"},"durationMs":841,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:19:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788697160146-903169","to":"/dashboard/attendance"},"durationMs":841,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:19:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788697160146-903169","to":"/dashboard/attendance"},"durationMs":888,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:19:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":354.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:19:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":564.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:19:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"70de5c2a-d08e-4d9f-a479-1ae43b5afdcf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":1003,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"384ee766-d077-4323-9b18-8e64c200975e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":994,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"167a453e-cf05-4ae7-8409-0da12ce358ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.52,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cf30aaa2-422c-4cdb-b89a-8d3f914620c0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:19:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b64beac0-bd9f-42cd-8166-886ed1daa7ba","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:19:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":341.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:19:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":326.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:19:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e61f4ef3-d155-41da-8e00-8b02c10cda7d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":52.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1de0655e-f128-4bca-aa94-06ef21da12a6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:19:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c95ccc3b-a883-4b33-809d-0a4fbafa9983","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:19:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":398.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":479.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8f6d4de8-998a-4d29-ae0a-77a186a540cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/assessment-analysis","navId":"1788697178972-760377","text":"Assessment Analysis"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b3ab1923-2122-4f7e-9ada-35b407320951","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select class","name":null,"type":"button"},"durationMs":152,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:19:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a8246e2b-9b55-4f6d-bf01-9869cde51f45","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":94.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=&limit=100","requestId":"04bb4503-bf7c-4d1b-ba36-5e2739d894e1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":62.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"82d8e924-bc8d-411a-b0af-de86c8f8d31c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"82aa4820-e42a-41ac-ba41-c8c59dfb5cf3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:19:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":67.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"f72e3649-8ec1-4206-ab75-0f291baf56d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":143.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&limit=100","requestId":"b8efa85c-d40b-4b62-b5f8-e833a6ddf748","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":280.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/analytics?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"2e906e19-e850-4c16-a74f-15f81ea45a00","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/cbc/report-cards","href":"/dashboard/academics/assessment-analysis","navId":"1788697178972-760377","text":"Assessment Analysis","to":"/dashboard/academics/assessment-analysis"},"durationMs":3853,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/cbc/report-cards","navId":"1788697178972-760377","to":"/dashboard/academics/assessment-analysis"},"durationMs":3853,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/cbc/report-cards","navId":"1788697178972-760377","to":"/dashboard/academics/assessment-analysis"},"durationMs":4185,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":382.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":451.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/learning-areas"},"durationMs":659.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":832.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0957bd12-a8e8-4f4b-a219-73897e89c7da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":786.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/analytics"},"durationMs":922.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:19:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b5aae1b7-8890-4b8b-934d-667166ce0b6b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:19:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 15:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:20:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"384c2512-f8c5-467e-85c8-9aa950cd1f03","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:20:02","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":204,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:20:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6765d731-623b-4107-937d-21c53b49b014","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:20:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4ce0ab52-08d4-4141-8b7b-c62bec9e6dd0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:20:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bc00e87e-4592-45b0-b248-aed070efb39e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:20:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":378.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:20:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":334.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:20:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e3082ebc-5bca-4bdf-9e08-53689a7a13f8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:20:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:21:00"}
{"durationMs":63.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4b0797f8-cb45-4b0c-9ec8-068285969485","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:21:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":68.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0e643a1a-af10-4ffd-8259-62f06c8fc4d6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:21:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":512.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:21:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":521.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:21:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.25,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"db6f8c84-d896-4957-95fb-ca1e1fca90e1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:21:42","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:23:00"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":199,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:23:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2e07f6c8-e32e-472c-813a-f8613f30a178","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:23:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":3.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e76c4a40-a9da-467c-980c-7d898f942140","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:23:32","userId":null}
{"data":{"id":null,"label":"Teacher Portal","name":null,"type":null},"durationMs":1206,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:23:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"76bfa116-5aea-4713-bd94-a30c536d7098","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:23:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms/current","requestId":"b51fa25d-d6ef-4dc5-bba0-c0605b82d2fd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:23:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":160.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"8cd622d4-3520-4f62-a948-93903915a96b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:23:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":233.1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c59163bf-4d26-42fa-beb6-1f9a204a0ac3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:23:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":253.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"57b4c029-41f5-413a-9fb6-1349463619c8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:23:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":147.58,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"f8114ce1-bcf4-45bb-b8e2-34cd4f9724a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:23:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":193.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"f1605672-78f5-4f25-9d73-2309bf314ea0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:23:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"fdee81fb-bfb6-4536-9cfc-2035c83af01e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:23:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":618.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"098e9b8a-11aa-4492-b1af-a61a806e0d3a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:23:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":291.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Sunday","requestId":"1283f4f7-a3c0-43b7-92bc-2e2f218f4075","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:23:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.02,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"24c94e02-4a75-4a92-b4f9-6d10cc9222ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:23:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/terms/current"},"durationMs":463.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:23:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":736.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:23:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":875.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:23:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":1034.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:23:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/overview"},"durationMs":473,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:23:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/overview"},"durationMs":1100.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:23:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-schedule"},"durationMs":1104.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:23:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1111.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:23:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1114.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:23:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5e6a3d54-597c-401a-991c-129eaab4826b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:23:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/status"},"durationMs":468.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:23:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c969965d-ae20-4d15-8db6-31687fab0c79","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:23:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bbeb8a51-823f-429e-9a6d-dd651652eb88","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:23:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":51.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6fd7fa1b-6e40-47fc-a7dd-11b5d346dddd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:23:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1760,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:23:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":2578.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:23:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"902b8c10-dd12-4184-afcf-89ab0977d5c7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:23:50","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:24:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":669,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"48a1101d-74eb-4031-a229-1638db3c34b2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:24:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/class-teacher/students","navId":"1788697444346-978707","text":"My Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5ab81c08-aae7-4c3a-a455-4cc2d62de3a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:24:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/teacher","href":"/dashboard/class-teacher/students","navId":"1788697444346-978707","text":"My Students","to":"/dashboard/class-teacher/students"},"durationMs":927,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/teacher","navId":"1788697444346-978707","to":"/dashboard/class-teacher/students"},"durationMs":927,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/teacher","navId":"1788697444346-978707","to":"/dashboard/class-teacher/students"},"durationMs":955,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ce22cf43-21ba-4987-a6a6-1288e95d05cc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:24:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/students","href":null,"navId":null,"text":null,"to":"/dashboard/teacher"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/class-teacher/students","navId":null,"to":"/dashboard/teacher"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"798cd455-ab65-440a-a2f8-b610b907d15a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:24:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":218,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"44a06092-bcd1-420d-aee6-b146e13f54dc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:24:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cd1bd606-7d38-42f4-b0b3-0e9c9a19c4bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:24:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"598324b0-e6b6-432e-8adf-626aeed9fe30","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:24:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":479.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":367.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5ead573d-6943-4188-bc7f-ce96d689434f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:24:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/payroll","navId":"1788697469304-669714","text":"Payroll"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ff367f46-c892-48df-aedd-14ec35978e28","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:24:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":153.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/runs","requestId":"30f898fe-4c03-4427-b9e9-fb7523b93543","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:24:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":230.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/summary/9/2026","requestId":"30f947db-b1f1-4c67-8107-a15896476e5b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:24:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/assessment-analysis","href":"/dashboard/payroll","navId":"1788697469304-669714","text":"Payroll","to":"/dashboard/payroll"},"durationMs":1266,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/assessment-analysis","navId":"1788697469304-669714","to":"/dashboard/payroll"},"durationMs":1266,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/assessment-analysis","navId":"1788697469304-669714","to":"/dashboard/payroll"},"durationMs":1424,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/runs"},"durationMs":587.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/summary/9/2026"},"durationMs":1008.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:24:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.39,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d3d109c8-c453-4808-bd25-ebdcd299aa54","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:24:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 15:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:25:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"982714aa-de78-4944-bbfd-b72f3723cd5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:26:00"}
{"durationMs":1.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b62d8b03-8289-436a-bb0a-18e0159e4866","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:26:43","userId":null}
{"durationMs":99.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"5d6c28de-ea50-4f59-b977-34726d27bf34","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:26:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":95.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"00ce15dc-6587-4bd6-9501-516bc395c2ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:26:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9dc269df-c42c-42ca-a26e-197e8ce24118","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:26:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"3200f11f-342b-4b83-9ca0-0c176ff51472","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:26:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":218.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"2178a73b-8edd-404d-840d-e0404d9e6962","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:26:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"145c9d78-ccb4-46a0-b483-0f73d0e5e15e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:26:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":157.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"1fdb3aba-2de5-430a-8446-5f9b30b0a481","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:26:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":187.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"3cbd133e-2a71-4dce-ac4f-194d17602148","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:26:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":124.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"28e2cfa4-bdfd-4872-9e5b-f806682ab9f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:26:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":197.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"91cec859-578c-4aaf-a6b7-d6de0ad3ac11","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:26:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":201.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"5dd1b1a8-a5f0-4539-9c0c-d07b9d3cfd69","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:26:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":192.67,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"89cf66e1-59a3-476b-be70-460cf1548873","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:26:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"b8b3b735-088c-42da-a21f-067b16651dfe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:26:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":754.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":762.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":783.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":838.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":468.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":516.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":574.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":611.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":615.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":618.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":623.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8ed26c8c-8de1-480a-9991-219fb464aa3c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:26:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1594.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"834ed4bf-3811-4f8a-9263-8f6ed1f6ae2c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:26:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":104,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:26:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f5de5a6a-8cf5-40ae-a472-5e0b855b5d07","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:26:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:27:00"}
{"data":{"href":"/dashboard","navId":"1788697622577-727765","text":null},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:27:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e0b0650e-2527-4e4e-8f59-2ac754cf8e54","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df45bea8-6b7f-486d-a4ee-830886743c93","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:34","userId":null}
{"data":{"id":null,"label":"Sign In","name":null,"type":"button"},"durationMs":12,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:41","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b021f4ce-13ee-4d46-8ef7-471317e97ea0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:41","userId":null}
{"durationMs":1.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f92d060e-e70c-40d2-8cd0-aae5207b879b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:43","userId":null}
{"durationMs":1.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dedacfd5-0c9d-4ffc-8d9a-d8ed6b0f2ce1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:45","userId":null}
{"durationMs":50.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"5d7773c4-4af4-440d-87ef-1d036223d6eb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":75.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c24a2413-0d72-4960-b32a-efdf05214650","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":95.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/runs","requestId":"2fe999c7-1ffe-4710-bb9d-e9cace5e32c8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":124.52,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c19b3ce2-1093-408c-ba33-fdd5b446096d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":121.02,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"52b5e886-e773-43cc-b54b-6001894238d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/summary/9/2026","requestId":"3f529031-c2a6-4df3-9dbf-60d5c1622d6e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"45979ad4-071b-4532-8291-62fbfa136c99","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:27:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:27:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":102.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f1bc6e94-44ba-4f25-84b7-d8d5d3d1d179","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":260.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"c13cf352-d4df-44d3-b107-b21e5cd866af","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":276.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cb751809-fe4f-43d8-97a6-936e479f55cb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":276.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1493821b-4681-408a-9b4c-c6cf0a504805","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":650.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:27:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":663.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:27:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/runs"},"durationMs":1024.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:27:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1288.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:27:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1293.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:27:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/summary/9/2026"},"durationMs":1297.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:27:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.22,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"643f9cbf-5a29-4194-af04-ef3a3de43666","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":90.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"1562c8f9-a067-4f7a-854e-b0f93c02e86d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":197.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"03fe2d05-524e-41a5-8ca1-abd850969376","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":140.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"dd7d2a83-550f-4b39-97aa-d8c6d9f0a181","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":173.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"43e44e29-b417-44bb-9fbc-672789537ea0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":205.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"353379ac-731d-4fbd-b1de-2f9760d5211d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":158.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"897a6dfe-01c9-4189-a8e5-04f3ff331a9b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:27:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":203.25,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"2ae22232-20ce-40db-8c19-f06b9f4a3ab7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":208.25,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"72e27374-7bef-47fe-a792-91f691825ba2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":700.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":709.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":716.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":720.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":575.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":620.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":626,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":629.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":660,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":663.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":666.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":671,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":4.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1d5fd218-bb32-4372-91d4-319f70ec0ca3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:49","userId":null}
{"data":{"id":null,"label":"Exit Portal","name":null,"type":null},"durationMs":21,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":3.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cddb75d3-eb62-472d-8563-f7dd79f94068","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:54","userId":null}
{"data":{"id":null,"label":"Exit Portal","name":null,"type":null},"durationMs":5,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:27:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":3.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"15760b34-a204-42eb-a42e-88ca76d99a71","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:27:57","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:28:00"}
{"durationMs":717.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"fa035249-f9d1-4aad-84ea-95ff0509a5b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:01","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":260,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:28:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"18597036-dceb-44d1-ae25-32194758ae77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:01","userId":null}
{"durationMs":28.03,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"2c98269c-a453-4ac6-b0f1-8571cdcae228","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1417.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"081348b4-0651-49d3-bd6f-35a148cdf6fd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":25.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"3b5007ae-f556-48b7-8edf-b79f588bfb5e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"e79215cb-446f-49dd-aa13-c07fe093b6a6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":52.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"f65ee5a0-d0fa-4119-8219-661734204ac8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"11240ddd-e9a7-4068-a28c-5401de193229","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":25.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"68d02a70-94c1-4965-9d5f-52ea360e360e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Exit Portal","name":null,"type":null},"durationMs":16,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:28:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"79f94fd8-a4e1-4195-9152-53f441727d07","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:04","userId":null}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":1101.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":501,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":507.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":512.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":759.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":765.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f2157f88-a702-43bf-90f1-8d7ac9d2430b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"a47d2107-a8f7-4eb2-b9f5-485258cf1f1d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":43.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c518e426-1a64-40fb-8dbf-191bcf4676ad","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":37.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"351dad07-4e9a-4ee4-ba34-998c7c7aca6f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":39.96,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"076a217c-e890-40f1-a90e-f0babd253408","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":723.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":736.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1251.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1268.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a0b82746-fdfa-4000-97fb-d01d6b920e1c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Exit Portal","name":null,"type":null},"durationMs":12,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"id":null,"label":"Exit Portal","name":null,"type":null},"durationMs":12,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":3.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4c351910-0404-452d-b42d-59013dab6256","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:06","userId":null}
{"durationMs":59.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"ce747dd7-f422-4751-9712-7190e0c3bacb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"6b3dee3a-017b-426d-9ac1-529af997c474","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":89.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"10fed65c-7ab2-4652-b42e-5bcb7ee51f34","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"8053f2be-75f9-40e6-ad46-066159ff4b08","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":95.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"fed7e2f7-9d04-4674-96fa-4304c5ded8b8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":59.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"0309415b-9163-4add-8b89-dac4ba7cf997","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":36.48,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"133c11f5-dcd7-4a20-a5aa-6a575a3f451f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":24.96,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"240d21f4-4bbc-4de0-92b9-79b65b65d629","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":522,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":522.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":542.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":786.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":798.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":815.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1195,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1199.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1a2e2b77-6d3d-4469-b9e3-3c6aa1f6c17f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":225,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:28:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d2dbafc2-6ae1-4cde-81ce-6ddb07c24f7d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:09","userId":null}
{"data":{"href":"/dashboard/communication/whatsapp","navId":"1788697710599-979993","text":"Open WhatsApp setup"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f5cf0c89-f5c8-40ae-9cf9-05e266a01a15","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":69.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"021e80de-c9ba-4c06-ad68-d72415ed82d4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:28:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":57.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/history?limit=1000","requestId":"5ef9291f-03b3-4778-85c0-6c641838b563","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":"/dashboard/communication/whatsapp","navId":"1788697710599-979993","text":"Open WhatsApp setup","to":"/dashboard/communication/whatsapp"},"durationMs":2542,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788697710599-979993","to":"/dashboard/communication/whatsapp"},"durationMs":2542,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788697710599-979993","to":"/dashboard/communication/whatsapp"},"durationMs":3074,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":488.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/history"},"durationMs":619.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6857e935-f843-4bb0-bc21-261ce1649568","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":39.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"af3e2498-2f53-4d1c-886e-324f28d3b2b2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:28:43","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":363,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4102783b-e832-4080-b920-73e52be165e2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:44","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":4.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"bf6bcdfe-262b-4b55-8909-c86acc05751b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:28:46","userId":null}
{"durationMs":142.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"67c074a7-9bf2-4597-a569-dfb25eefe424","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:46","userId":null}
{"durationMs":3.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"da15d7bf-7f53-49d5-aa44-7d80496e4574","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:28:47","userId":null}
{"durationMs":96.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6fc2f3c4-d4b3-4654-b4d8-027c6961f785","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:28:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":118.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"264de3e5-417d-4774-9cc4-0f53c27f986e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:47","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":319.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:28:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":305.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:28:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3e5329ef-fcdd-47f3-8cde-ad17f01ab271","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":128.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"689b5c7c-7252-4101-a39d-27d8a2da85e2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:28:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":398.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:28:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":441.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:28:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bb24079d-2a35-43fd-b218-5a275a2b15eb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"83c87774-a3a1-4b44-ad93-2f25ca9b0a58","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:28:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":449.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:49","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"31616c5f-ebd2-43f9-9ec7-e0e2be5e20ef","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":36.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"bf8c7e3f-8141-4a5c-847f-ae6d50619348","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:28:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":325.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:28:55","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e5726ea9-a75f-4667-b1f6-f77b6f0c28a1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:28:55","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":44.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"38d3c979-760f-47b4-9584-da6bf72dd745","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:28:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:29:00"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":332.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9fa253e7-6e4f-4d97-87ef-592404314556","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"5b1206bd-ae9c-4922-a1e6-119842350926","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f80fc917-affa-4a94-915b-89778cf25991","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":365.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bc148a68-21f1-4e5c-a2f0-be7457304930","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2f57463c-3360-42a5-9f9c-997c829578ae","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":332.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":341.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b30183c8-a538-44dc-b743-4b343c0088f4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":37.99,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"a56dbb6b-b23c-405d-bf08-3230232cc0c9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":322.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6f3e4ebb-a5f8-4196-a1ce-b79be875c4cf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"8dd7968f-0b6a-450e-9d1d-e004ed74a9af","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":375.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d29f3a27-61dc-4c3e-994a-c42689554d90","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"acb7a0b9-c483-4acf-bb6b-f168c3190602","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":344.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aefba0b2-acaa-49fb-8cad-2e498fa67fa2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"19c97944-859b-48c5-a20c-c258cddc72b7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":327.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:27","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"91969c90-0a45-4dad-93d6-a920bd0326a6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:27","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":47.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"a91da849-106b-47ce-9d99-3e60b1b3146a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":343.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:32","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ef26af20-04ed-4352-aa81-ce8181f23925","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:32","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":189,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"51097e8b-b916-4e93-a1ed-ac7eb65ee895","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"87b09284-458e-4a7b-80f7-4d5523023fbf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":330.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3381d060-35c2-4f86-970b-08a362b78850","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":43.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"cab7eef2-f673-410e-b4e5-e69199c4253d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:42","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":24.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/banks","requestId":"e730b67a-1e1e-4a84-a891-5f3f92970d33","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:43","userId":null}
{"durationMs":153.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"81f1ceb9-59b6-4a37-a56e-926b657056c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/payments","navId":"1788697778264-974408","text":"Payments & Deposits"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","href":"/dashboard/finance/payments","navId":"1788697778264-974408","text":"Payments & Deposits","to":"/dashboard/finance/payments"},"durationMs":642,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","navId":"1788697778264-974408","to":"/dashboard/finance/payments"},"durationMs":642,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","navId":"1788697778264-974408","to":"/dashboard/finance/payments"},"durationMs":947,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:43","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1ee19d94-6693-47b9-a43d-1361c4450803","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":364.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:43","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"353a2177-d783-4b29-ad2c-caeab5e8ffda","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:43","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":482.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?studentId=","requestId":"2f43abd2-1e26-4804-9c89-281930bd4d26","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/banks"},"durationMs":365.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":566.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":825,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.99,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"306ea6c0-dd3e-401a-8d00-9929662d8e73","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"aed6fffd-680e-4605-aef3-14170c4bd555","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":57.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"78078f40-a16d-4c8f-bfde-40b24169902e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"31a06054-fb45-4289-bffd-fc81a3f823ce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":343.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:48","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c3e956d2-e06c-4087-941d-6855abd89900","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":370.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":371.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"481bb03a-f214-40d3-888d-6c26d92339e6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Payment Settings","name":null,"type":null},"durationMs":46,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"80fd11b6-71d0-4e3a-b07e-5ade1691096a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"a52da19f-51ca-4c53-ad04-551634d05b6f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/finance/payment-methods","navId":"1788697788938-917224","text":"Go to Payment Methods Configuration"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","href":"/dashboard/finance/payment-methods","navId":"1788697788938-917224","text":"Go to Payment Methods Configuration","to":"/dashboard/finance/payment-methods"},"durationMs":176,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payment-methods","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","navId":"1788697788938-917224","to":"/dashboard/finance/payment-methods"},"durationMs":264,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payment-methods","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:29:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.48,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"160425f0-f14b-44a1-8597-db362c51e061","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":352.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6d486fc0-3e79-4076-b8f2-aa20525c50d3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"fcb1edf6-dae9-40db-8a6e-f9c31a37f9cc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:29:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":318.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:29:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"020431cf-bf29-4c0d-a75f-d9daed87b391","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:29:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 15:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:30:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0da37a9-2044-44af-aa69-cb6e529b05b4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:01","userId":null}
{"durationMs":58.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"3fa5c364-cb96-4a9c-80c8-742cc260a875","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":349.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":7.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5e336fc6-d663-4882-a484-22feabe302b9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Go to Dashboard","name":null,"type":null},"durationMs":13,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payment-methods","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payment-methods","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payment-methods","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ca923667-171b-40e8-b887-70144be39801","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"43a5d533-b1f1-4be7-b997-ddab0b326a88","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":443.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"d7da6a25-90ce-4fb4-ae42-0710f03530e5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":434.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"f3915848-f769-428f-97e4-587589b49629","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":479.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"f96214e7-c038-4b52-b8db-a1e5a9aa61f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":497.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"49ed2922-5c1b-4a78-8c9a-eae8aef156d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":464.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"f58513c1-04da-4b49-881e-fff52a106304","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":197.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"0aaac5d4-384d-4757-9a60-c115adf4e538","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":214.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"82c8b98d-dc50-43ab-a95c-0a042602beb9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":530.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"fd17ef96-9452-4956-941f-ecf8cd92477a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"84d5390f-2000-48e9-8dcf-1ea79251428f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"63ea2c5a-0fbc-471e-a74d-e195ee5417db","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":499.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":826.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":868.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":905.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":909,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":913.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":999,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1001.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1021.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"51cf7013-7c60-4026-bbdd-b1c604ff6d8d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":343.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":371.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":7.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"93aed5f6-dc3e-4f86-b9fb-00672d1402f1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"89a2276c-f6a0-4d2b-a13d-507aa6ac55d5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:08","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":354.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.62,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e8fe5074-cd4b-4f7d-bde4-fbd495695279","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"eb7fb2d4-5c2c-401a-b773-46e36f88ccd7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":347.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"62fcd463-120e-4f0e-8661-38177a133c3b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":36.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"5610747b-c6da-40bd-99f2-d28de43adb04","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":344.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ff3585d1-db47-4a2f-88ae-c333568bfea0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":182,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:21","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b91795c0-e642-40a3-a5da-e59c2e0ccc85","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"dd140f02-8294-4d5d-8953-f502a01b18ab","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":326.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f0adfb3b-baec-4438-880d-c31d205b4120","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":50,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"67adbef6-de3e-4cc6-8439-3cfc8792407b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":235,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"242ded32-f6e7-4c1a-900b-1d32253f4885","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"5c10230b-bdb0-4bc7-b244-56bfec158c43","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":330.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1a2fd260-9c38-4002-98b3-e7674308eae7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/settings","navId":"1788697829039-597154","text":"Settings"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3f271f1f-4575-4089-a149-54656bbebb1c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/settings","navId":"1788697829039-597154","text":"Settings","to":"/dashboard/settings"},"durationMs":1014,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788697829039-597154","to":"/dashboard/settings"},"durationMs":1014,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788697829039-597154","to":"/dashboard/settings"},"durationMs":1148,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0fcf4628-a2d5-477d-8c31-cc8233e7e459","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"0101b185-226c-4ce9-8cfe-9dea8b012e3b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":318.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e213e033-6510-4199-b40d-5268b402c791","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"eb031a5c-5fd0-4757-a948-123f215cf484","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":318.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:42","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e226de67-6290-40f7-b7e3-49385f3da4d1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:42","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b0607b40-21ba-434e-a881-d77228b58f8c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:44","userId":null}
{"data":{"id":null,"label":"Teacher Portal","name":null,"type":null},"durationMs":336,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:45","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c06c3a49-a061-4fb1-9e9a-03d4bb6cb084","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"11c34926-7bb1-44ae-9a13-807d38ca2e13","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms/current","requestId":"7a607b2c-7d42-4f93-90a8-845c45efbc40","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":41.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"40a5e906-d7ff-4d9c-b7af-74297cf254f0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":66.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"1d349172-8f68-4f5b-a0fd-65b6b09b3a48","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-06 15:30:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":82.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"3c92a1f8-3516-4059-a5ba-834505aee35f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-06 15:30:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":110.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Sunday","requestId":"be1f437d-c825-4014-bb40-aa7e2c53eb23","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-06 15:30:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":95.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"0c501fbf-e370-4435-abdd-ec37ddf2d02e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":187.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"4752f0d6-a725-4def-b853-0af7062856af","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"6b1ab6ec-b463-49f4-80e0-f5b2086ae649","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-06 15:30:46","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":22.58,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Sunday","requestId":"e41f2f7c-1381-4bb1-a487-0c432f418eb3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-06 15:30:46","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.22,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"86843ef1-260d-4219-b868-1d7fd7c57184","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-06 15:30:46","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":352.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:46","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academic/terms/current"},"durationMs":432.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:46","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":470.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:46","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":530.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:46","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/overview"},"durationMs":559.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:46","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":568.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:46","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":584.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:46","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":616.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:46","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"109fd4fe-8e4f-4216-ac92-ace8a13da426","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:46","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":40.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"64e74936-d6a1-4100-a82a-5aeb63bcd338","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-06 15:30:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.96,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"aef375f1-7633-4ed1-af7a-85bc212e53a3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:30:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":316,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":332.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/overview"},"durationMs":344.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":335.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/clocking/status"},"durationMs":338.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d0f0faa7-685c-4d4e-b2dd-3652cc911297","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"8b10a1d5-c344-4830-8afe-93d93f36c7f2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-06 15:30:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"608fdc3f-9aa7-4f21-9de0-3cf6493b3ced","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:48","userId":null}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":334.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:49","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e9f6cf97-b3cd-4c7e-bd96-ceb408abea2b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"body":{},"error":"Table 'aereuxky_cbc_sms.User' doesn't exist","ip":"154.79.248.144","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async Object.listUsers (/home/aereuxky/cbcsms-backend/src/modules/users/users.service.js:83:25)\n    at async listUsers (/home/aereuxky/cbcsms-backend/src/modules/users/users.controller.js:6:43)","timestamp":"2026-09-06 15:30:49","url":"/api/v1/users?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":161.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users?page=1&limit=20","requestId":"a5ad69e8-4ac9-4516-9c30-34ba166f5eff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-06 15:30:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":111.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"3bc297ec-5e24-45ce-a94f-6b02c02b1485","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":179.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"45f7de2a-674c-43cd-a087-73a1faf892bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":164.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5135760f-5310-48fd-8f5e-3aa9e7c7620f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":162.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"2ab36cb0-c8ce-4dbd-a0ae-241c3ce62be4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:30:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Table 'aereuxky_cbc_sms.User' doesn't exist","ip":"154.79.248.144","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async Object.listUsers (/home/aereuxky/cbcsms-backend/src/modules/users/users.service.js:83:25)\n    at async listUsers (/home/aereuxky/cbcsms-backend/src/modules/users/users.controller.js:6:43)","timestamp":"2026-09-06 15:30:50","url":"/api/v1/users?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.25,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users?page=1&limit=20","requestId":"7b15ea6a-bc48-413c-864c-a8d219f609f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-06 15:30:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/users"},"durationMs":654.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":788.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":794,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":798.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":803,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fb9995ca-3e24-4338-a9b7-79753db0a481","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/users"},"durationMs":406.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:30:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"60acf220-5789-4b60-b81d-3ebb1289091f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select class stream...","name":null,"type":"button"},"durationMs":246,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:56","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"51e2a8af-5512-42ea-9e07-fb68f53c6607","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Select class stream...","name":null,"type":"button"},"durationMs":30,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:30:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9b1498ba-ddbc-4c73-a134-b6f0f2e475ac","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:30:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:31:00"}
{"data":{"id":null,"label":"All Roles","name":null,"type":"button"},"durationMs":306,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/users","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:31:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8392b81d-e80e-43da-a7c9-ceea15a249bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:31:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Clock In","name":null,"type":null},"durationMs":31,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":18.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"afe9fb97-8c8c-48ff-803a-0ba1c7edeaeb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:31:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":33.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/clocking/in","requestId":"2a3b39b7-1fa8-46a6-84ae-3437ed2a408d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:31:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":403,"url":"/clocking/in"},"durationMs":336.3,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"95ac76a4-540f-4a84-b9ef-84a007ebaf01","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:31:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Invite User","name":null,"type":null},"durationMs":379,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/users","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:31:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f29085d2-5cc1-4136-8fe2-94cf31c85aad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:31:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select role","name":null,"type":"button"},"durationMs":234,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/users","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:31:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"57cc6fcb-d7c5-47a0-8a90-dd412d37b801","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:31:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/clocking/in","requestId":"b3885d52-5b7d-4ce0-92ab-13e4c24470e7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:31:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Clock In","name":null,"type":null},"durationMs":28,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":403,"url":"/clocking/in"},"durationMs":345,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.39,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6b067e54-ad50-49d9-a6a0-31bb75b69c01","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:31:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":46.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"148d66a2-62e1-4095-b3a1-74ade0b5216b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:31:45","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":37.39,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"579aa824-ed86-4165-9dde-d87166151337","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:31:46","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":351.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":329.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"458f2bc2-51bc-42af-986b-50545b1c330c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:31:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":25.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"633cf985-205f-4b64-bdf3-2916e92cd53c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:31:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/clocking/status"},"durationMs":326.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:48","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6b42579d-3df3-42f8-b3f8-9c4b622046b9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:31:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":142.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"aff5f6a6-1b38-411e-a5c9-16602edf6bc9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:31:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":139.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"aa1e55c2-b31c-4b6c-bdb7-0021fc71998c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:31:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/profile","navId":"1788697906237-472468","text":"My Profile"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/teacher","href":"/dashboard/profile","navId":"1788697906237-472468","text":"My Profile","to":"/dashboard/profile"},"durationMs":628,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/teacher","navId":"1788697906237-472468","to":"/dashboard/profile"},"durationMs":628,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/teacher","navId":"1788697906237-472468","to":"/dashboard/profile"},"durationMs":898,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee814d75-3957-4bfd-ae7d-c1af5e25ed57","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:31:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":523.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:31:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":545.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:31:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2d8f60d9-64ad-4611-a1e9-89330d5b0460","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:31:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":320.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"d36292f3-2239-4fc9-a64e-e0ff69e71812","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-06 15:31:52","userId":null}
{"durationMs":368.81,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"0ce9d040-ecc2-4b55-b6d1-2f2f5e817d02","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:31:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"fe32de35-bf90-4c5c-82c2-1cc77fb67d06","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-06 15:31:53","userId":null}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":743.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":746.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"09ccae28-5ff7-44d6-9237-db0b92e5a021","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:31:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":321.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:31:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fdb8a325-6075-46cd-9fcd-29cc39ae4a7d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:31:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:32:00"}
{"durationMs":1.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b307e606-e37d-4aa5-9841-32a2895204f6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:13","userId":null}
{"durationMs":115.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3fef0be4-0b28-44bf-bc62-6ec79544ed38","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":106.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1c543e2a-7d5e-4231-962a-c0b4f959636c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":98.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"62e43f6f-0799-4c34-b994-d58f9bb45c55","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":130.62,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"a876fd10-60f7-4b6a-aede-51b5f021fc27","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":485.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":491.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":495.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":498.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c945502a-9f14-4e08-89f9-4a7d28861f4c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"486c08f2-afaa-4ad3-a182-f3234e825273","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:26","userId":null}
{"durationMs":120.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"650f3252-6379-4f4e-8a6c-4af5c68d0701","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":321.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"67db7eff-9f26-40b5-9eaa-ab4a9f61cc0b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Table 'aereuxky_cbc_sms.User' doesn't exist","ip":"154.79.248.144","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async Object.listUsers (/home/aereuxky/cbcsms-backend/src/modules/users/users.service.js:83:25)\n    at async listUsers (/home/aereuxky/cbcsms-backend/src/modules/users/users.controller.js:6:43)","timestamp":"2026-09-06 15:32:28","url":"/api/v1/users?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":282.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users?page=1&limit=20","requestId":"57cdd92b-8869-4f1f-95ad-441500e56ebc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-06 15:32:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":294.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"da5d7ff8-0a89-4366-8a0f-276c509502e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":317.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d4c28838-7dd6-4460-922c-3acbf1015c26","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":571.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/users"},"durationMs":813,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":841.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":851.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":856.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c389adbd-871b-403a-8426-c119e3eca45b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Table 'aereuxky_cbc_sms.User' doesn't exist","ip":"154.79.248.144","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async Object.listUsers (/home/aereuxky/cbcsms-backend/src/modules/users/users.service.js:83:25)\n    at async listUsers (/home/aereuxky/cbcsms-backend/src/modules/users/users.controller.js:6:43)","timestamp":"2026-09-06 15:32:29","url":"/api/v1/users?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users?page=1&limit=20","requestId":"1b89c9c9-ae20-4e66-8015-7d0cd4d7708b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-06 15:32:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Invite User","name":null,"type":null},"durationMs":964,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/users","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/users"},"durationMs":1110.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":11.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"252da7ab-f4fd-42ff-8925-06dba5f31379","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Select role","name":null,"type":"button"},"durationMs":256,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/users","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"67c84a05-976d-44c9-986c-fcf1d4b31e51","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":109,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/users","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0ecabd62-7205-4245-b2ac-e05e2c633345","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/settings/users","navId":"1788697941822-224083","text":"User ManagementInvite users, manage accounts and access"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c09052e0-2a59-4ae8-9d04-560448c68028","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:ru:-trigger-security","label":"Security","name":null,"type":"button"},"durationMs":4,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:32:50","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"64e0ef1c-040e-44f3-8119-52a5182526d4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:50","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":40.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1cec441c-3eed-4ba3-ad4c-5af8967538b2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":76.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"30c91c12-3a18-4dbe-b141-9af020b816e8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":402.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"9dba25b9-35b4-4315-9b3f-e6af0cecf8fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":326.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"35ce5f61-0263-44a9-b280-eef4eb22d45f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":427.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"e9fc6654-2475-419e-9f13-219d9064c90d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":392.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"159bd7e1-4d0a-4e99-a167-9fb5db3847a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":428.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"a3c41bc4-84f7-415c-b470-677498f986cc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":382.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"8f3da801-f4ff-4c8c-a212-bc8b9b822bcd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":412.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"c25d0093-a28b-4f0e-a0f4-67648b8e0ba6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:32:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":431.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"d1369f4b-1941-4012-be64-24bfd9cc0606","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings","href":"/dashboard/settings/users","navId":"1788697941822-224083","text":"User ManagementInvite users, manage accounts and access","to":"/dashboard"},"durationMs":26268,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings","navId":"1788697941822-224083","to":"/dashboard"},"durationMs":26268,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings","navId":"1788697941822-224083","to":"/dashboard"},"durationMs":26339,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"64830544-b8ca-4f5d-868f-686888dfebc4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":411.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:32:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":404.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:32:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eae80ceb-a965-4092-885a-758125adf171","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":696.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":746.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":820.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":824.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":830.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":835,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":838,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":970.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:32:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"febd5ed7-74c4-49be-8ad3-af2b6a1c119c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:32:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:33:00"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":33,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7fa1d711-8a82-4836-9a0f-0c4e56b31124","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":27,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"23ef0ca4-17ff-4bae-85d1-cb486ec0f0a1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":27,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":17,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":22,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":17,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":17,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"358ceaf6-247d-4d27-a9a8-2c39951bfc6a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":14,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":30,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":15,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":18,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.8,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"29d2db01-77e9-401c-b30e-c020cd81c12d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":17,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b6717350-6b44-4c8b-a644-9a348cfb6f6a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":68.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"04e9d264-0c53-47d5-9789-8f569ba6eb1b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:33:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":98.18,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b2c141be-8dcd-47ec-92b8-a2577700385f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:33:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":376.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":400.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4c5b734b-067e-4154-989d-08b80dd8c097","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":373,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:31","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.18,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"884999ff-11f0-431b-a39a-1a00d64ece84","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/fee-structures","navId":"1788698014618-830128","text":"Fee Structures & Rules"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0e9cde46-f1f0-4e4a-8cbf-4af4908e628a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":164.03,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"6d8a0173-cc11-4acc-8131-1d563e5ed851","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:33:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":263.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"a27fa62d-de53-43c8-b1c2-0fbcb9be1aa9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":259.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"a32e3a72-8b0c-4162-ade7-05a6e0c458e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":525.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dynamic-rules","requestId":"3ec9f214-7ac1-43b8-9a71-f4fcd63f51cb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":664.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/fee-structures","requestId":"f783ed58-cb2a-4c9d-b4c0-b75f1f19fe28","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/finance/fee-structures","navId":"1788698014618-830128","text":"Fee Structures & Rules","to":"/dashboard/finance/fee-structures"},"durationMs":1203,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788698014618-830128","to":"/dashboard/finance/fee-structures"},"durationMs":1203,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788698014618-830128","to":"/dashboard/finance/fee-structures"},"durationMs":1266,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":630.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":650.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":662.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.02,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"df5ef0dd-cd31-4dbb-be21-ba77ff554299","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dynamic-rules"},"durationMs":864.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/fee-structures"},"durationMs":1029.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d449ecea-8f3c-4a96-affc-c652119c53f5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Junior Secondary","name":null,"type":null},"durationMs":43,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"348ca1cf-e75b-472e-8a01-d953d8013952","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d20872a6-d799-4013-8ee7-712e44f78447","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:33:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":37.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"eee99412-f69b-435c-9a7c-bc5528993199","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:33:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":404,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":387,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:33:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8de31d51-f04d-4469-b00e-edd3817b4d7b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Pre-Primary","name":null,"type":null},"durationMs":53,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:33:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4a03655e-af22-42c9-b9de-db16c0465185","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:33:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:34:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":188,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:01","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c307b4f3-7272-4f35-82a6-fac006192fb8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":13,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:34:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":14,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:34:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":14,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:34:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":12,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:34:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"171edbab-9b95-4b95-88c2-e5aa3a24d3bc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":16,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:34:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":22,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:34:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fe6f8ecd-183b-49a1-8563-017c952b8587","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":16,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:34:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":17,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:34:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":16,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:34:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"04846f29-0f78-4a33-b22e-94307c834af3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":"radix-:ru:-trigger-security","label":"Security","name":null,"type":"button"},"durationMs":10,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:34:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"687e7416-3b7b-4fda-acb7-aab313877fde","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":72.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"22773464-e256-4da5-9774-e1b3dda12335","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:34:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"dbc0eb75-68dd-42e5-8c03-3aa6dde199c3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:34:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":461.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":436.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c5abafd2-a543-4e22-8043-aae75998324c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/fee-dashboard","navId":"1788698075011-454616","text":"Fee Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/fee-structures","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"03822ef4-4368-4737-ba20-c52a13195d53","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":178.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"8d2801c9-ef88-48e3-80e8-83b97327e476","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:34:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":339.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/debt-aging","requestId":"9ad44324-803e-4f24-856f-a1ab4a1e9c29","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":316.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/payment-segments","requestId":"89b5bb59-c6ae-40aa-ad16-54d909f51638","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":364.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/forecast","requestId":"f11ac28e-47b0-4fa8-8d37-28a6dec451a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":353.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/collection-velocity","requestId":"e1a56ef0-3088-4b2e-b80b-6d0b38e9970b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":397.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"aaa51eca-4b13-465e-8eb8-d1dde3dbd4e1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-structures","href":"/dashboard/finance/fee-dashboard","navId":"1788698075011-454616","text":"Fee Dashboard","to":"/dashboard/finance/fee-dashboard"},"durationMs":1491,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-structures","navId":"1788698075011-454616","to":"/dashboard/finance/fee-dashboard"},"durationMs":1491,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-structures","navId":"1788698075011-454616","to":"/dashboard/finance/fee-dashboard"},"durationMs":1635,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":507.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/debt-aging"},"durationMs":688.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/payment-segments"},"durationMs":731.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/forecast"},"durationMs":737.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/collection-velocity"},"durationMs":774.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":782.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:34:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6b3959e-6605-47c5-babd-b51d6f324c2e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a810a5c9-3abc-499b-8017-815d4511169d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:34:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f355aaaf-1504-4413-a374-cd9de46d256c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:34:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":387.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:34:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":383.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:34:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ef92cb3b-32cc-425b-86ed-b54c79bf7dea","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:34:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 15:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 15:35:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4a22d0f-a136-470f-8c83-3d5524ef56bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:02","userId":null}
{"data":{"id":null,"label":"Change Password","name":null,"type":"submit"},"durationMs":55,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":113.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b3b0e6e0-10ed-4872-bfc0-55ec5fa2528d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1687.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/change-password","requestId":"0559980f-f844-4407-900c-8ff02712a605","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":200,"url":"/auth/change-password"},"durationMs":1994.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6eb0c0bc-6974-41f2-905c-029806ba0bf6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":17,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":33,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":12,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":14,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a1690578-014e-4fbf-b494-41a636c10630","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":14,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":12,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":14,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"540e7af9-0a12-48a9-a4e4-3a66ba7f05d7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":17,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":23,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":16,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":13,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"26a6f05c-67cb-4bb8-8326-0483e6d64ce1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":182.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"5a5707e9-b555-43a2-a31c-d273c768e581","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:35:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":186.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"feaead45-d852-4866-86d1-34c49deaa43d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:35:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":18,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":17,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":18,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"113d02e8-2f25-41e3-b3e5-98d6fa04fd3a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":707.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:35:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":689.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:35:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"113b1fa0-010a-4ddd-986e-5bcda8c99f39","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":16,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":15,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":14,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"633f1be1-722f-46e0-825d-e5ce38f0b01f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":17,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":14,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":18,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"18dfface-d8e0-49ea-a006-5dfaa4c2d474","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":"radix-:ru:-trigger-details","label":"Personal Details","name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:32","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4a19cf22-7485-4ddb-965f-abeb166d4816","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:32","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":125,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5f483572-f0ff-487e-9a08-6753b9ae648c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Blue","name":null,"type":null},"durationMs":133,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"db4f096e-869a-400e-b846-25d179daf5c6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"System","name":null,"type":null},"durationMs":29,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0ccc2cb6-fb84-43b9-9c40-bf8568e9b3bb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":303,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:35:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8aa91035-992a-4cfd-9529-1c571c59ce8b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:52","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b24a2b7e-ede3-492a-ac22-707e63802646","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:35:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":27.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"0371da47-96d9-4446-94cd-68b87a1c54f1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:35:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":532.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:55","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":548.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:55","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b69657be-7952-4205-aad9-6ce35a59c5c2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:55","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"System","name":null,"type":null},"durationMs":18,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:57","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"846e292c-4e50-4b5e-a67b-a7f59b3fa561","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Dark","name":null,"type":null},"durationMs":178,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:35:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b9448189-4e25-4fc8-b1f1-6ad5c9ed7dde","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:35:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:36:00"}
{"data":{"href":"/dashboard/finance/payments","navId":"1788698157206-463805","text":"Payments & Deposits"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"72dfdc3d-8ca6-4285-a959-11d7551c0447","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/banks","requestId":"8e6018f1-4ff6-4e5b-97a4-373501cd03d0","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:02","userId":null}
{"durationMs":84.22,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"690895a9-396f-4538-9e72-97b8e1e5e51c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":458.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?studentId=","requestId":"015af029-086f-4ea9-a34b-2ee1b7d0a8f1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"System","name":null,"type":null},"durationMs":190,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.48,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5b37b9c9-9a23-4761-81e6-6e744dabf9e1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/finance/fee-dashboard","href":"/dashboard/finance/payments","navId":"1788698157206-463805","text":"Payments & Deposits","to":"/dashboard/finance/payments"},"durationMs":992,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","navId":"1788698157206-463805","to":"/dashboard/finance/payments"},"durationMs":992,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","navId":"1788698157206-463805","to":"/dashboard/finance/payments"},"durationMs":1144,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/banks"},"durationMs":475.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":517.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fa3f33af-cd13-4b6e-ad67-5dc2a27feece","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":804.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.48,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f51d352c-bc18-4019-bcd4-dd482e682cd2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Payment Settings","name":null,"type":null},"durationMs":69,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"402c3fee-d54f-47d3-b2ad-b4c945cff003","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":28,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":16,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.25,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d7c9f0ae-51e0-4057-8040-adbe5eac00c7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":17,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Save Changes","name":null,"type":"submit"},"durationMs":16,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1338eef1-d3fc-4ed3-8437-64a4824e9c37","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":82.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"0ba325d3-6b30-4fac-b00c-b6b632e64862","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":67.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"aff5dba2-01de-4dda-8fcc-efa080d1fe0e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":99.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"21054263-917a-47da-9f29-bb6c26b350c1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":513.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":497.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":547.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b82b8b9e-df0e-4c20-b15a-504abdf472c3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/finance/payment-methods","navId":"1788698170300-793477","text":"Go to Payment Methods Configuration"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","href":"/dashboard/finance/payment-methods","navId":"1788698170300-793477","text":"Go to Payment Methods Configuration","to":"/dashboard/finance/payment-methods"},"durationMs":146,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payment-methods","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","navId":"1788698170300-793477","to":"/dashboard/finance/payment-methods"},"durationMs":265,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payment-methods","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1fe4b28b-52ed-4b81-a28f-9257a51728b7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":89.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"04e5201d-dd18-4ab0-909f-903218cb5e2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a0f4ef13-5700-4240-9c8e-ca56a5dccceb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"50e0084e-e19f-492a-8086-8b4b814ea02e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payment-methods","href":null,"navId":null,"text":null,"to":"/dashboard/finance/payments"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payment-methods","navId":null,"to":"/dashboard/finance/payments"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:19","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.48,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ad34c063-ad92-443c-aabe-a3645dab2a42","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"185bb35e-4c37-4943-866d-e6832a752ba8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":661.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":665.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":670.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4b01302c-a557-48b8-bc12-7bf21d7e4b9a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":344.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"76697f2b-75b6-43e7-b1d8-7ce88cc05fe9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.39,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"fd2d0fcc-63a3-4eeb-bc98-ed6d7b0eabd1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:24","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Choose method","name":null,"type":"button"},"durationMs":443,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:36:24","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e0f392a3-72df-4893-bd7f-2dd3f191e3ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":436.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"90fa48b8-9292-4ed1-a6f1-d851aedb115d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":37.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"256afc05-e2a7-45db-aa7c-525b67a340b1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":432.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b799f3c9-e064-471d-9bc5-72ad15a02f55","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"10db9e91-8816-4853-b3a3-dec513995eeb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":357.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.81,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4122dfef-3cdc-4ba6-827c-3a99712339e9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":36.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"323edfa1-90ac-415d-9dee-bfe19d686d2d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":335.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:42","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"08e4bc67-e131-43fb-9758-cd8f524aced9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:42","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":33.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"3798c500-6bb3-4324-8240-2778e9093bad","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:46","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":330.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":7.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"12de93bd-ee84-4e9f-8301-45df69bcf494","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":33.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"076cb4b3-9a1d-4ca9-aca0-cd5d6651db09","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":331.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"143f1530-e3c0-472d-8835-7bf638c9fac1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"94f5083f-99a7-4529-8744-5e954875cfdf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":333.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0f3a651a-876e-44c3-a506-fee4d190d96f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/history?limit=1000","requestId":"2c1ee198-896a-48a8-a342-e409a1eb2316","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:36:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":"radix-:rl:-trigger-history","label":"Message History","name":null,"type":"button"},"durationMs":30,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/history"},"durationMs":394.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:36:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":46.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"08f318a9-6c62-4351-9152-8c62ee7f3a9d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:36:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:37:00"}
{"data":{"id":null,"label":"Setup WhatsApp","name":null,"type":null},"durationMs":73,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:37:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b327d6fd-876d-48c6-b521-06ecba93ed32","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:37:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":43.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0f2d1501-f76d-4ef4-8eb9-41c2ed131ecd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:37:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":27.62,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e3584c40-1c51-4721-8788-0329a409208b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:37:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":378.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:37:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":358.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:37:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"104b4db4-b524-4faf-b56a-ca2dbdf7f2a9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:37:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":40.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"b48d7c44-885d-471c-ab3a-65d60b7d350c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:37:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":23.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"6378a9f2-c419-47c0-b935-9b8f01eb359d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:37:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Go to settings","name":null,"type":null},"durationMs":200,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:37:32","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":385.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:37:32","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":384.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:37:32","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"04646aab-ea8b-428c-bb0c-062c03d7a80d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:37:32","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":40.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"f1d73be9-fd70-49a8-a22c-02916b5fc18f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:37:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":439.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:37:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f16e69c4-c4cc-40ef-ab37-21ee68c2a9cf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:37:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":"radix-:r1b:-trigger-settings","label":"Settings","name":null,"type":"button"},"durationMs":10,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:37:42","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"08ff59cd-58fe-45b5-adf5-2f06cee14f58","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:37:42","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Setup WhatsApp","name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:37:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"735f0ee9-2bf4-409c-b411-b953e4727aa8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:37:44","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Web BasedConnect by scanning a QR code with your phone. Uses your existing Whats","name":null,"type":null},"durationMs":57,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:37:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"adff9bb0-724e-40fa-9cc5-1f35408358e7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:37:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:38:00"}
{"durationMs":44.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6d496a17-701e-440c-8059-a2c5b4987284","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:38:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":46.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1da03817-309f-4c94-80b1-2a1cacaef10c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:38:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":429.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:38:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":432.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:38:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1d702df6-d533-4dcb-91af-54b6326231a5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:38:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:39:00"}
{"durationMs":70.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"af795dd6-1392-4d44-b79e-95311780d20c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:39:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":37.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"80a9c9cd-efa4-462c-be73-5a5702ef624b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:39:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":399.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:39:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":382.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:39:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d592cd6e-ef78-4a3d-865a-f93714d98899","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:39:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 15:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:40:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"924e1acc-78c4-4c4e-862e-f2c4e7588b5c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:40:02","userId":null}
{"durationMs":107.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2aa408a8-1ec4-4e86-bcb3-3a80c03c09e3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:40:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":63.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8f3a7a88-621f-4d3b-87b9-6fabffda2f18","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:40:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":441.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:40:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":433,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:40:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.52,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8b31ead0-b0de-4ef6-b5ee-12524241fe84","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:40:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:41:00"}
{"durationMs":98.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"61458244-315b-4f79-95ce-d81144ba0d89","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:41:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":63.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"43e99e49-c30c-4fca-8749-709bd560693b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:41:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":469.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:41:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":454.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:41:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2972f1eb-03c5-4178-b59f-b74563fad2f9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:41:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:42:00"}
{"durationMs":1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa16e492-19fe-4af9-bdc4-434de03d9bab","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:42:04","userId":null}
{"data":{"id":null,"label":"Nurse Portal","name":null,"type":null},"durationMs":241,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"77f67089-d222-439e-8d17-c30692701b5b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:42:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":118.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"e3f1fb1e-6d21-4119-955d-fd775e951940","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:42:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":251.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"123e4362-71dc-4631-a22a-4090b032f308","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:42:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":273.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2d08d8cc-d7c2-4eb4-a0b1-4b186d5b46be","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:42:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":265.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"23e6d7c6-9919-42ab-a906-13aa469c3d78","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:42:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":243.02,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/vitals?limit=50","requestId":"7067f6a0-24f6-4183-ab3d-1b0ab7afc37b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:42:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":257.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/records?limit=100","requestId":"53a390fd-eafe-4a8f-986c-e0d294c1fb47","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:42:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":263.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/stats","requestId":"51d5527a-872d-46b2-b0d8-7b30699ad491","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:42:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":439.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":685.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":693.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":697.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/health/vitals?limit=50"},"durationMs":704.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/health/records?limit=100"},"durationMs":715.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/health/stats"},"durationMs":723.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"96ebb5b6-3db7-4254-a0eb-598467e80677","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:42:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":60.58,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/vitals?limit=50","requestId":"f8046540-356d-4ecd-89cf-30f6e68c4df9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:42:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":51.39,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/records?limit=100","requestId":"0ca776d0-4825-451b-9701-10ca4b2d8884","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:42:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":46.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/stats","requestId":"307acc41-83b2-440e-b9a8-b5de4ebf0276","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:42:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/health/vitals?limit=50"},"durationMs":376.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/health/records?limit=100"},"durationMs":372.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/health/stats"},"durationMs":366,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9088b729-6b72-43b9-9dc8-3b22cf193476","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:42:08","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/health/profiles","navId":"1788698545165-506005","text":"Medical Profiles"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/nurse","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b6e5c0eb-18f0-4238-baee-4b33b99b13c4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:42:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":57.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"2eeb3b7b-1cea-4002-927d-7b191e6307af","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:42:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/nurse","href":"/dashboard/health/profiles","navId":"1788698545165-506005","text":"Medical Profiles","to":"/dashboard/billing"},"durationMs":1023,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/nurse","navId":"1788698545165-506005","to":"/dashboard/billing"},"durationMs":1023,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/nurse","navId":"1788698545165-506005","to":"/dashboard/billing"},"durationMs":1059,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/billing"},"durationMs":366.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2f37e788-c913-4f74-85f2-14f0c46762c0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:42:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/health/emergencies","navId":"1788698564170-58330","text":"Emergency Alerts"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:42:49","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0d80d5c1-9428-4580-8cf3-f8a9a925baba","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:42:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:43:00"}
{"durationMs":2.99,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ec701835-708d-43e8-a165-c84465709b06","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:43:16","userId":null}
{"durationMs":1.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bb68ec58-f76d-43fd-b15c-5e19e9fa1e23","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:43:16","userId":null}
{"body":{"refreshToken":"[REDACTED]"},"error":"Refresh token expired or revoked","ip":"154.79.248.144","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Refresh token expired or revoked\n    at Object.refreshAccessToken (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:587:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async refreshToken (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:43:20)","timestamp":"2026-09-06 15:43:17","url":"/api/v1/auth/refresh-token"}
{"durationMs":17.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"b31b7541-1f73-492d-8dd2-cd8c68ea1f0f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:43:17","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":449.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:43:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":443.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:43:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/communication/whatsapp","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:43:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/communication/whatsapp","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:43:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5ea33c3e-9e4c-4638-9b6b-2ed111931eb8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:17","userId":null}
{"durationMs":1.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc314bed-f390-4a58-95e4-aaff209ef1c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:18","userId":null}
{"durationMs":672.8,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"c5365b1f-b1f9-4be6-ba00-0def07b6ff5a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:33","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":70,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:43:33","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cb9ea1ab-ef8d-418c-881a-8a39ab6920c4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:33","userId":null}
{"durationMs":38.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"e01ed186-b679-4b4c-9552-c5be3752d48d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:33","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":50,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"597e1a93-1a68-4a94-aa8f-987280689fe6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"a5372c76-4a14-475e-9ced-45d80412e3d4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"d992502b-8269-4cd1-b5cd-8cd8b76e46ae","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":54.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"c3c99528-f62d-4433-a4e4-434d46239402","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":133.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"8207970c-616a-47c9-b27b-f4fd78494641","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1027.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":428.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"252583b7-20e8-4e17-a896-a02fd8594089","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"11579567-cdb2-4604-bad0-22a9ff47f641","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:43:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":82.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"aac8d302-9aa8-4db0-9c73-3749cab77e2c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:43:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":70.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"1bce145d-77c5-401c-9991-4967e7310f21","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:43:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":78.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3a18d9e3-c5db-4e7e-a2f9-9a4cb7471cbc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:43:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":469.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":475.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":480.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":486.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":507.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":428.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":508.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":511.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":519.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5d6f981a-7589-425e-b3f6-1784322d18b6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":88.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"0582ab87-dfb6-419f-8dd7-7647d433be34","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:43:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":155.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"e2e829b7-535b-43d2-9005-99060703dc45","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":128.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"7ec6da0b-8da5-429b-9abd-3866795ec94c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":166.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"7251352c-694e-4db4-92d8-ab53df178698","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":151.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"b1df26cd-bdc6-48ed-98f0-6d0c2695b34d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":176.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"2cb8cff9-2d74-4ca3-8f7c-27562720a0b6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":132.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"02626da4-9cf9-4341-8e6c-18190cfaa98c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:43:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":114.96,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"c461e68e-be8e-4c18-9d6d-eff3e5a68fc4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:43:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":452.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":454.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":498.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":510.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":527.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":532.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":537.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":541.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:43:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7c24678e-cc18-4e9c-b411-d08b4f272069","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:43:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:44:00"}
{"durationMs":73.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bb6bea5c-4de2-4a38-9117-407c9c1202f7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:44:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":78.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a17bb885-7a7a-41ed-96b8-a7ffeccf803b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:44:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"473cb535-345c-4f83-b4ca-e613cc04608c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:44:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":403.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:44:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":395.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:44:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"da88a465-5908-4ebc-8e04-bab0ecaadc4d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:44:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":367.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:44:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cf8d48de-62d2-42c1-b0be-7b1fb8563edc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:44:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 15:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:45:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"46e09d8f-3038-4c25-a7b9-f3c6d468340c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:01","userId":null}
{"data":{"href":"/dashboard/cbc/report-cards","navId":"1788698714293-443383","text":"Report Cards"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b71e26ff-2ca6-4ea6-8353-52daad33acda","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":27.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"6c1d6a45-cd6c-4a0a-b48b-9f04377d9996","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":36.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"108177af-ca56-4f65-a787-c21ce0aa82e9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":43.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"0ec3e57c-ecf9-4fdf-ba4c-38cd381d3b76","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":55.52,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"a3f66729-4f51-41a6-86fe-bb4142402410","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":132.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments","requestId":"d7544800-4615-45d2-909f-fead889619ff","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":204.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10","requestId":"a68443a6-eebd-40dc-a0fb-712c4960d943","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":"/dashboard/cbc/report-cards","navId":"1788698714293-443383","text":"Report Cards","to":"/dashboard/cbc/report-cards"},"durationMs":4660,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/cbc/report-cards","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788698714293-443383","to":"/dashboard/cbc/report-cards"},"durationMs":4660,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/cbc/report-cards","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788698714293-443383","to":"/dashboard/cbc/report-cards"},"durationMs":5036,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/cbc/report-cards","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":748.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":759.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":761.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":795.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":803.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":811.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"469985cd-f0d6-4221-b82c-23582f653353","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:24","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":62.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8c28f825-73a8-4ba6-af8f-01201f2eb824","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:45:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"44a35047-4f26-42b8-9890-3af286b469ed","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:45:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":384.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":369.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9302cb66-46a0-4376-83da-cc3bbfd547af","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":2.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e04326ef-7992-4a93-8437-040806b49dfc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:50","userId":null}
{"data":{"href":"/dashboard/attendance","navId":"1788698746074-371287","text":"Attendance"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/cbc/report-cards","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.02,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f6347224-0a83-435c-86be-7b25b6a7d210","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":36.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"29d6c4a1-b43c-49dd-a11d-e31daf12d33d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":20.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b1af0df7-7f46-415a-82a4-c15c22bd058b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b08ca867-4873-4586-8dd2-6e43d268eb31","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:45:52","userId":null}
{"durationMs":1.18,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"62bc9b62-5df6-46b2-9367-62f4acc9e6f6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:45:52","userId":null}
{"durationMs":0.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e67c1f49-d4e0-48fc-9bac-080b7b19f2da","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:45:52","userId":null}
{"durationMs":1.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"0dc43746-be29-474a-95f4-06c118f10195","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:45:52","userId":null}
{"durationMs":0.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"e6ff0bfb-83c8-408c-883e-9ac3243e0d68","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:45:52","userId":null}
{"durationMs":0.8,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?studentId=","requestId":"81d5f9fd-64ab-46d2-994f-60ec16c78fa5","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:45:52","userId":null}
{"durationMs":4.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/banks","requestId":"152b777e-cd68-4b69-8f1a-39b7de0c1eeb","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:45:52","userId":null}
{"data":{"from":"/dashboard/cbc/report-cards","href":"/dashboard/attendance","navId":"1788698746074-371287","text":"Attendance","to":"/dashboard/attendance"},"durationMs":978,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/cbc/report-cards","navId":"1788698746074-371287","to":"/dashboard/attendance"},"durationMs":978,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/cbc/report-cards","navId":"1788698746074-371287","to":"/dashboard/attendance"},"durationMs":1070,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":365.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":367.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:45:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4e79a521-60a5-4405-a1af-c6da5c055a3e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":112.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"bd6b4ee8-d54e-4b9b-b566-d5ae6b74980e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:52","userId":null}
{"durationMs":117.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"3546f5e0-3420-4d36-b4e7-e292d29227ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":320.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cb757a42-c8d1-40d8-8506-6ee8e0468fdd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:45:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":298.99,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"308d2c9b-dac5-4c73-95b1-80c05c197787","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:45:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":549.3,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":581.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":594.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/academics/classes"},"durationMs":599.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":606.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/fees/invoices"},"durationMs":608.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/banks"},"durationMs":616.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a44b6ad6-6dbe-4734-b21f-2ae52f911d4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":347.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"6173b086-e1bf-4edf-b316-d23ab2e5b243","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:45:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":242.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"480ea2b8-505e-4ced-9c91-0117495c3ac3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:45:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":416.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":632.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":636.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":691.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":695.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"791c9497-0a69-4393-a3e3-c9a4039890b3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance/payments?bankVerificationStatus=PENDING_VERIFICATION,UNVERIFIED&limit=100&sortBy=createdAt&sortOrder=asc","requestId":"7f28c680-f3bc-4769-970c-85f8d9a3fe02","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2592.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?studentId=","requestId":"8642b479-ebcf-4a97-9e35-49416e4d81f3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:45:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Unverified Deposits","name":null,"type":null},"durationMs":605,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance/payments"},"durationMs":400.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":3110.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:45:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"47793804-4980-4279-94eb-a405f69414ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:45:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:46:00"}
{"durationMs":34.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"b8b1fb10-ca93-484b-978d-37daedab2716","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"f28d74e0-205a-49d6-a8d6-7df2c37717f1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:46:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":29.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"14116e52-eb00-4fef-bee1-c5e6ea0f6fef","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:46:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"f7480687-0fe6-48c9-a0f2-2e8666559c24","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:46:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard","navId":"1788698760771-274195","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/attendance","href":"/dashboard","navId":"1788698760771-274195","text":"Dashboard","to":"/dashboard"},"durationMs":525,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/attendance","navId":"1788698760771-274195","to":"/dashboard"},"durationMs":525,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/attendance","navId":"1788698760771-274195","to":"/dashboard"},"durationMs":855,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1c8675e1-6fe5-4f76-b754-aaea64cdbdba","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/settings","navId":"1788698761441-471090","text":"Settings"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:46:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1a6897de-2d12-4ba3-9afc-f79bbfd6fa68","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":411.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":417.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":426.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":527.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"da117890-a9b0-45a1-a385-64a42f220930","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/finance/payments","href":"/dashboard/settings","navId":"1788698761441-471090","text":"Settings","to":"/dashboard/settings"},"durationMs":840,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:46:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","navId":"1788698761441-471090","to":"/dashboard/settings"},"durationMs":840,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:46:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","navId":"1788698761441-471090","to":"/dashboard/settings"},"durationMs":937,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:46:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d1c587a5-9911-4a33-aebd-2b1edb90026e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":62,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":18.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"31786d7b-c15d-447e-9caa-6e05d392af34","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4b63c9b-092b-4820-b1be-9c6012124137","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:16","userId":null}
{"data":{"id":null,"label":"Transport Manager","name":null,"type":null},"durationMs":284,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"88bdb3b2-8484-4f5b-9b59-202d623a34c2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":36.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"4650922e-d094-4b41-a850-eda05646caf8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:46:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":77.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7d320f48-527a-4009-90a4-2de87caa1945","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:46:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":66.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1fa27418-da83-4a50-a4b5-9896f084b7a5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:46:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":47.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/dashboard","requestId":"b7bada85-522d-4646-ab5d-3150c815c044","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:46:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":50.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"5c019ffc-8660-44a4-9e82-89bd0c1f5ba6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:46:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":27.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/dashboard","requestId":"1c6db97b-069f-4d3b-9f42-a80f1b4dadb6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:46:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/dashboard"},"durationMs":421.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":431.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":438.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":441.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":446.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.67,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8375f18b-1fcf-4896-b58e-f6cfa8d963fd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/dashboard"},"durationMs":400.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e2b79169-0fc3-475c-bc3f-614ec3dc857d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":58.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/vehicles?page=1&limit=20","requestId":"17b7d562-69ee-4652-bd36-aa50051c023a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:46:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":27.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/vehicles?page=1&limit=20","requestId":"9b56ee36-5979-456e-b85f-07e73aa91d10","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:46:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Vehicles","name":null,"type":null},"durationMs":312,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/vehicles"},"durationMs":364.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4d25cd75-6614-4c87-a160-a49b55cbd6d3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":53.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"fb8affcc-0064-443a-ae08-0080a10b4809","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:46:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":403,"url":"/transport/vehicles"},"durationMs":499.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ce643400-3f44-458d-adaf-5999e0e36031","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":50.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1004e240-c642-4cbb-b0b4-e40b43201e69","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:46:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":352,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:46:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":334.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:46:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a20deadb-e7d3-46af-8cc6-d6573656751b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/routes?page=1&limit=20","requestId":"a02e5a89-0109-466b-80c0-dc201921de68","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:46:55","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Routes","name":null,"type":null},"durationMs":50,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:56","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/routes"},"durationMs":341.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:56","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":19.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"70d5f980-ea10-4147-99c3-6891b8b6f151","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":23.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/routes?page=1&limit=20","requestId":"826cb432-2f2e-4883-b3a3-8f85a0a8955c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:46:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/routes"},"durationMs":331.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:46:57","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ffb9fc47-2b57-4905-afdc-c4858bc78517","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:46:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:47:00"}
{"durationMs":24.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/vehicles?page=1&limit=20","requestId":"bde5a859-dab2-402a-87af-7084567936bf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:47:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/vehicles?page=1&limit=20","requestId":"0158d6a9-bf1b-41a4-9465-283c4fb9c663","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:47:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Vehicles","name":null,"type":null},"durationMs":259,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:47:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/vehicles"},"durationMs":332,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:47:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dd45199c-6cd7-4bf2-9a77-fe4bdd3a3a73","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:47:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":26.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/dashboard","requestId":"9c262524-dcd8-4816-818d-f9e58651d650","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:47:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/vehicles"},"durationMs":359.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:47:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Dashboard","name":null,"type":null},"durationMs":34,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:47:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.58,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0a9f37d1-6f9e-4bff-b286-2ef548d8e366","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:47:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/dashboard","requestId":"d7809065-5686-47c1-b510-dcf00205eaff","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:47:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/dashboard"},"durationMs":381.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:47:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8e24775c-0feb-46c3-8311-836aed9e9e7b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:47:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/dashboard"},"durationMs":317,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:47:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ae28a883-8b3b-4bd8-b9ab-49e6ac2cf617","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:47:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/settings/school","navId":"1788698832181-267270","text":"School"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:47:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d537a10b-fc68-43a2-9b38-52aa7fcc9f69","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:47:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":63.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"1311cd1d-ef04-4ce3-93e4-da0353c65714","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:47:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b60c6a9d-57b1-440f-9d4c-dfa3e705f313","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:47:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":39.22,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b062a796-68da-4d3f-bdbd-ba6b4acc7a1b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:47:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/settings","href":"/dashboard/settings/school","navId":"1788698832181-267270","text":"School","to":"/dashboard/settings/school"},"durationMs":899,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings/school","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:47:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings","navId":"1788698832181-267270","to":"/dashboard/settings/school"},"durationMs":899,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/settings/school","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:47:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings","navId":"1788698832181-267270","to":"/dashboard/settings/school"},"durationMs":950,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings/school","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:47:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":467.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:47:18","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0d0f927b-af02-400c-abb4-f2abf399f250","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:47:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":375.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:47:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":388.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:47:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5d8ecad7-36dc-4b00-956f-d48deefedcab","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:47:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":207,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/school","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:47:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"190add7e-5af1-4359-9443-08a30951d22a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:47:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4ca2bdb5-5a16-45aa-aa76-0446396b8c47","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:47:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"86526c46-a2d6-4ccd-aaf0-957dafb6336c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:47:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":343.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:47:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":406,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:47:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3b411676-f6f7-4095-a30f-a1685685681e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:47:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:48:00"}
{"durationMs":31.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/routes?page=1&limit=20","requestId":"591d29f1-7eda-4841-af8c-7c41eeb66769","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:48:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/routes?page=1&limit=20","requestId":"de34f824-a2c4-4924-acea-8d97c25d8179","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:48:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/routes"},"durationMs":610.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:48:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.18,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f73078e2-631a-4c59-bfc4-16699bd19577","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:48:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/routes"},"durationMs":742.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:48:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.52,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4bc51052-85b5-4f84-a629-676e5c260d4f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:48:08","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":37.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"222ec5f5-0925-4c99-b933-e36c508129dc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:48:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":29.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5a0c0369-cd6a-40d9-934e-80ae32f672c6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:48:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":373.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:48:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":398.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:48:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"82db1b92-2699-4170-9196-2593a982d59d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:48:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Add Route","name":null,"type":null},"durationMs":77,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:48:27","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"45b34ae0-5841-4aaf-a77b-c9974d76a3af","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:48:27","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:49:00"}
{"durationMs":1.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b05a87b1-0c80-446f-8e48-5fa8de3a14e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:49:16","userId":null}
{"durationMs":87.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1f43b89a-513c-40b6-bf40-a00750382005","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:49:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":48.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d13be69f-f112-41c8-8dc8-417b1939b33a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:49:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":53.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"12327387-ba6c-41a5-a5eb-654a52466052","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:49:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":68.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"1c1f0edd-bfbd-4295-b0cb-5d7f49c057e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:49:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":335.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"06acf3c0-bd27-4f70-8cdb-f515245dcba2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:49:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":311.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"7ed7497d-7d7a-48a5-a23a-95b02e6abb10","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:49:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":335.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1fe193a8-23ff-432d-8be8-6cce16ca0f15","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:49:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":453.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:49:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":422.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:49:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4ca1fb7f-8739-465d-b3e5-92be13cd2c91","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:49:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":831.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:49:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":965.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:49:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1509.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:49:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1519.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:49:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1554.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:49:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a6d3b6f6-0e15-41a0-8c6e-4e3e14128014","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:49:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":398,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/school","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:49:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1393385b-2bff-42da-960e-c497cdf3ff54","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:49:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/cbc/report-cards","navId":"1788698993071-57321","text":"Report Cards"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings/school","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:49:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"955ed996-1539-4c04-9314-c95b97ddfdbe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:49:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"b70f6cc2-0341-424b-a3f3-5d29db62fb96","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:49:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"27395b46-0316-47ad-b9a3-16dc9f2031c8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:49:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":116.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"df14c4c9-9328-4236-9218-9bf987f5b6c5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:49:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":294.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"f232d124-a1ba-4df0-99dc-91d00ae92333","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:49:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":393.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments","requestId":"2f1db23f-424e-4b6c-a296-b2ea7a84333f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:49:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":434.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10","requestId":"ceb9fd4d-f050-4f09-9574-0066c68c6b6a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:49:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings/school","href":"/dashboard/cbc/report-cards","navId":"1788698993071-57321","text":"Report Cards","to":"/dashboard/cbc/report-cards"},"durationMs":1786,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings/school","navId":"1788698993071-57321","to":"/dashboard/cbc/report-cards"},"durationMs":1786,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/settings/school","navId":"1788698993071-57321","to":"/dashboard/cbc/report-cards"},"durationMs":2155,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":490.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":843.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":847.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":1016.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"13aba39d-60e2-4849-9e9d-da904e126afd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:50:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":75.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"02b4acfe-3874-4be7-ab02-c136124fdce5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:50:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":141.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"5b4fdaad-41cd-4c30-8818-b38b1b5b4720","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:50:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 15:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 15:50:00","totalConnections":1}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"94daff51-2be4-4415-9df2-89f1f56781f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:50:01","userId":null}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1024.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":1042.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":483.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":626.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8bc2e032-3cfc-496b-9264-05c836bbe4fc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:50:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":780,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6eeffea8-2dad-439c-b1bd-c8d16d7666c9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:50:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"464a2ad4-4d1c-4af5-be8f-6a488334e2a4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:50:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":44.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4cf7765e-81a6-4a74-b995-a3b64b3905e4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:50:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":666.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:50:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":685.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:50:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3b414d95-e48d-4965-88d3-1af0a2805b55","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:50:20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":54.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4afff6d1-6c48-4c6b-9f6c-e90d427ea633","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:50:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":72.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6d52cfd7-7ccb-417b-821f-c0a2ef36784f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:50:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":6663,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":795.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":827.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"15d1ba57-bab1-485f-9312-51144e4ecc62","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:50:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":651.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts7200yu8bcnrp0e2n77/cmp8gtpme00d68bcnq5m8mk8x","requestId":"170c3dfb-a802-4f95-9850-bfe4e2094aa6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:50:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":3801,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":255,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"424285a4-e286-4edf-8285-bcbd5c12e124","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:50:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":7094,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts7200yu8bcnrp0e2n77/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":1552.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:50:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"65039535-26f4-4ae2-aa88-67bbbd7db4c8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:50:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:51:00"}
{"durationMs":47.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c14f0cd5-ce86-4391-ab29-b298facb2477","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:51:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":40.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3b5c6dc6-05be-4cfc-be2b-ed73e6f0e96e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:51:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":470.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:51:21","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":520.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:51:21","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.22,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bb7765a5-1dd7-4252-b5f0-4c1ad39c3d7d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:51:21","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":200.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"54ddcf9b-4fc1-45bf-9158-4117ad4f3171","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:51:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":228.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8fe7a3e4-547f-4a76-ae37-bd2947429adf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:51:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":875.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:51:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1100.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:51:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9f4b0062-f410-46ba-8b09-44480cfd9aa7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:51:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:52:00"}
{"durationMs":58.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/transport/routes","requestId":"6c561dcd-b0a5-4714-9758-7f57f4c95b9d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:52:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Create Route","name":null,"type":"submit"},"durationMs":57,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:52:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"753d09cc-5e16-42fb-81f5-39cede65f8e7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:52:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":403,"url":"/transport/routes"},"durationMs":965.3,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:52:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.22,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d85b4fa7-7d56-4e80-b8d8-48295a8320fb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:52:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":82.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d976d5eb-d782-4f39-8a79-cadd9f2e0bf6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:52:21","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":75.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"7489fdca-e3c8-43fd-a21b-d10b77a75c62","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:52:21","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1819,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:52:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1759.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:52:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"61a43ce0-715b-4981-bb72-37a8fde54005","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:52:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":91.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"7a060158-624e-4c68-815c-5e7e3fadedcd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:52:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e50ca02e-dc46-427a-83e1-5425701b79b6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:52:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1121.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:52:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1094.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 15:52:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"206c0ee3-f02f-4ff1-acf9-02ffb350c901","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:52:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":36.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/transport/routes","requestId":"7545a41b-9678-4652-9de7-494da48bed95","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:52:43","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Create Route","name":null,"type":"submit"},"durationMs":41,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:52:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":403,"url":"/transport/routes"},"durationMs":647.3,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:52:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"72f7d67f-b50d-4fe0-86fc-c762507ca5f9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:52:44","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:53:00"}
{"durationMs":71.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"101d6ba8-c0d5-4ec9-a435-4767d3c2bc54","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:53:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":78.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"02cc64eb-f6b3-4f7a-8b93-fac3f2423c13","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:53:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":453.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:53:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":442.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:53:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"65b89bdd-05d5-4793-b631-8829833e7b8c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:53:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":52.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/transport/routes","requestId":"c4b5e667-8a41-4059-8a58-9bae7c9449a8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:53:43","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Create Route","name":null,"type":"submit"},"durationMs":40,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:53:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":403,"url":"/transport/routes"},"durationMs":756.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:53:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"81bc4b96-6021-49f9-bef3-7c719fb87018","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:53:44","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":40.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/vehicles?limit=100","requestId":"83063291-b374-4271-91b8-8bc97d2507ec","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:53:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":66.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/fuel-report?startDate=2026-09-01&endDate=2026-09-06","requestId":"3ff368cf-ce58-452f-b699-db9e2bee11ad","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:53:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":102.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/settings/school","requestId":"557daf10-b942-4b84-b83b-38b90020b51d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:53:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Reports","name":null,"type":null},"durationMs":165,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:53:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/vehicles?limit=100"},"durationMs":716.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:53:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/fuel-report?startDate=2026-09-01&endDate=2026-09-06"},"durationMs":721.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:53:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/settings/school"},"durationMs":791,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:53:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"607d5014-c019-45b1-b40c-b3bb845b5d6b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:53:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/vehicles?limit=100","requestId":"6a6c2ffa-446d-44df-8a6e-5f6bf935e527","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:53:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/fuel-report?startDate=2026-09-01&endDate=2026-09-06","requestId":"96bae8f6-0ab7-4891-82be-0c13fe598202","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:53:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/fuel-report?startDate=2026-09-01&endDate=2026-09-06"},"durationMs":671.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:53:55","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/transport/vehicles?limit=100"},"durationMs":683.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:53:55","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2e795528-90ae-4dd6-b225-ba417f340163","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:53:55","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:54:00"}
{"durationMs":82.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"84c5543f-44c1-4f92-8234-c015434e6ab6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:54:24","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":92.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ada4065d-79ea-46aa-9e87-e65f9da2ea81","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:54:24","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":2396.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:54:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":2382,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:54:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee156aae-16b0-4c83-9717-a244d26b9acf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:54:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":62.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"b8eacee4-cca0-4c65-92e9-ff4ef0973302","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:54:29","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":55.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8790919f-0c64-4efb-a141-db6e446a7166","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:54:29","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":59.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"034bc427-8d93-434a-b864-8f58e91b748d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:54:29","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":901,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:54:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":961.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:54:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":920,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:54:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9b613f33-8e4c-4f18-b3f1-f1f3c2dc8414","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:54:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/settings","navId":"1788699277354-678635","text":"Settings"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:54:43","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ad76c2b4-b2a9-4487-a126-dd228a1de6b3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:54:43","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":"/dashboard/settings","navId":"1788699277354-678635","text":"Settings","to":"/dashboard/settings"},"durationMs":1428,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:54:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788699277354-678635","to":"/dashboard/settings"},"durationMs":1428,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:54:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788699277354-678635","to":"/dashboard/settings"},"durationMs":1495,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:54:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"24a58ab8-446e-4ac4-8a8b-8270828acbb2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:54:44","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/settings/users","navId":"1788699290611-745566","text":"User ManagementInvite users, manage accounts and access"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:54:56","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"658eb3e6-1a23-4bb4-a067-1742c2b767c9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:54:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bf52240b-6524-47b1-876a-391869e9a3a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:54:57","userId":null}
{"durationMs":56.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"9239365f-ed58-4d48-b890-680340499e30","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:54:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"body":{},"error":"Table 'aereuxky_cbc_sms.User' doesn't exist","ip":"154.79.248.144","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async Object.listUsers (/home/aereuxky/cbcsms-backend/src/modules/users/users.service.js:83:25)\n    at async listUsers (/home/aereuxky/cbcsms-backend/src/modules/users/users.controller.js:6:43)","timestamp":"2026-09-06 15:54:58","url":"/api/v1/users?page=1&limit=20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":213.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users?page=1&limit=20","requestId":"77cc0010-2f7e-449c-8841-bdf103ad6603","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":500,"timestamp":"2026-09-06 15:54:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":305.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"fdd794d8-d9a2-4cb6-98d2-2f31bde9be88","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:54:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":292.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8ccdffc2-1a2a-402c-b15b-1c9b00c80d5c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:54:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":289.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"d3234a8e-ab0e-41a2-a62d-8b556ccb1a26","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:54:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 15:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 15:55:00","totalConnections":1}
{"body":{},"error":"Table 'aereuxky_cbc_sms.User' doesn't exist","ip":"154.79.248.144","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async Object.listUsers (/home/aereuxky/cbcsms-backend/src/modules/users/users.service.js:83:25)\n    at async listUsers (/home/aereuxky/cbcsms-backend/src/modules/users/users.controller.js:6:43)","timestamp":"2026-09-06 15:55:00","url":"/api/v1/users?page=1&limit=20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users?page=1&limit=20","requestId":"d90f6d04-0bf4-421b-a6a8-6949d34a4d3b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":500,"timestamp":"2026-09-06 15:55:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":500,"url":"/users"},"durationMs":1175.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1193.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1199,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1202.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1205.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f13270b0-5f7d-45bb-a2c4-acbc7472678e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:55:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":500,"url":"/users"},"durationMs":604.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"05d2a27c-2924-4990-894e-9d594e6bbc64","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:55:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"52bdb97a-2a5d-4062-9023-b13aa35eaeac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:55:01","userId":null}
{"data":{"id":null,"label":"Invite User","name":null,"type":null},"durationMs":655,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/users","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"345717b2-7d1e-42a0-8890-aeebcb7fdcfd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:55:08","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Select role","name":null,"type":"button"},"durationMs":80,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/users","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0f6cc22c-84e5-4e6e-9a34-f7fdbb91f606","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:55:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Select role","name":null,"type":"button"},"durationMs":91,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/users","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Select role","name":null,"type":"button"},"durationMs":79,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/users","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":33.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f8ed1a0d-6e01-4084-be4b-896e83ff7105","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:55:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/users/invite","requestId":"19126650-e63f-4eca-a1c1-9d18fdb0db25","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":404,"timestamp":"2026-09-06 15:55:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Send Invitation","name":null,"type":"submit"},"durationMs":172,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/users","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":404,"url":"/users/invite"},"durationMs":634.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8a7b1796-a2f0-4ab2-ba77-d3bfffbc303c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:55:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":91,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/settings/users","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:55:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"55a2810a-db9e-4d62-a5e9-dab2108d54bd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:55:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":65.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b4bd2889-e0d5-4724-b851-8c32de0e2f84","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:55:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":61.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"62dab43e-5585-44fc-a2d2-56ed47b1c95e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:55:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:56:00"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":482.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:56:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":468.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:56:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a2e704b7-7773-4cf2-b0c8-fe347ce6f7aa","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:56:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/settings","navId":"1788699384893-112976","text":"Settings"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings/users","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:56:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":40.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8b6dd7f9-1d8a-4d3c-a506-9a5256d7cd87","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:56:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/settings/users","href":"/dashboard/settings","navId":"1788699384893-112976","text":"Settings","to":"/dashboard/settings"},"durationMs":1126,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:56:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/settings/users","navId":"1788699384893-112976","to":"/dashboard/settings"},"durationMs":1126,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:56:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/settings/users","navId":"1788699384893-112976","to":"/dashboard/settings"},"durationMs":1179,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:56:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"df37bb34-d768-4e2a-9a33-29f6ccb00f1d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:56:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"236bdacf-075d-499d-be17-9e5cba3cdab9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:56:38","userId":null}
{"durationMs":73.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"98f83d82-2b3c-46ad-b182-6022c3112893","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:56:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":231.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e36cc9dc-1830-4f35-9c5d-df2fee314448","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:56:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":209.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c0eefb62-ae7c-4aeb-9df8-e047c55c322b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:56:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":282.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"abf25bfa-77a2-4e7f-9318-75c4dda049e0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:56:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":310.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/users/roles","requestId":"599e22af-99d5-498c-8526-397e95082402","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:56:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":647.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:56:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":823.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:56:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":827.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:56:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":831.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:56:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/users/roles"},"durationMs":837.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:56:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"384b284d-3301-436d-ae7c-b644216b3829","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:56:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:57:00"}
{"durationMs":75.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0b157c07-e788-43b7-8629-75e881f86e91","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:57:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"09c980a8-f2e6-40d0-864c-a0c837e9af64","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:57:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":460.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:57:41","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":447.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:57:41","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5b0bcd9a-8b19-4f36-a093-91637cdab32f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:57:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/profile","navId":"1788699465176-948788","text":"Profile"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings/roles","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:57:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3f82e218-1a00-4cdf-a997-95628b4c52d0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:57:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":2.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"6d83c3ce-f773-41eb-b51c-c58d653dbdbf","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-06 15:57:51","userId":null}
{"data":{"from":"/dashboard/settings/roles","href":"/dashboard/profile","navId":"1788699465176-948788","text":"Profile","to":"/dashboard/profile"},"durationMs":1608,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:57:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/settings/roles","navId":"1788699465176-948788","to":"/dashboard/profile"},"durationMs":1608,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:57:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/settings/roles","navId":"1788699465176-948788","to":"/dashboard/profile"},"durationMs":1644,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:57:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":396.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:57:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3e507667-f48c-40f4-8c89-998c8e62e8a2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:57:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":2.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"f555634b-d9da-453d-9990-69b5527d1bc6","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-06 15:57:52","userId":null}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":441.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:57:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b05c3cab-b02b-42b9-bdd5-cc2046889ae7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:57:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:58:00"}
{"data":{"href":"/dashboard/academics","navId":"1788699478421-799592","text":"Grades & Streams"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"56a235af-58ca-46c2-baac-473ae869e216","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"e16b2394-7001-4d54-84d3-3a6d6828ec34","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/profile","href":"/dashboard/academics","navId":"1788699478421-799592","text":"Grades & Streams","to":"/dashboard/academics"},"durationMs":1249,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/profile","navId":"1788699478421-799592","to":"/dashboard/academics"},"durationMs":1249,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/profile","navId":"1788699478421-799592","to":"/dashboard/academics"},"durationMs":1589,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":500.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b16c3081-55a4-4cec-8893-75c12a344f6f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":19.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"52473016-a5e9-4594-b019-f4d5a7d5b0cb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":18.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"5600e361-189b-4b50-8a21-5e5bb40490e9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Add Grade Level","name":null,"type":"button"},"durationMs":785,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":506.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":536.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6df9ad24-e10c-4973-9abc-44b1bdf7160f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Select an existing grade to copy...","name":null,"type":"button"},"durationMs":67,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"daf53395-b66d-4ba7-9b25-a551b86d66bb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":193,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"97913a33-3dc0-4674-8c58-aadbcb352b10","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:24","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":350,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:58:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":4.58,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d0e27080-83ff-4bc1-9a1f-c71f360cf76f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:38","userId":null}
{"durationMs":3.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9823c6a7-e817-4fd2-a5f7-8bca1ee3cc5d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:58:40","userId":null}
{"durationMs":2.67,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8c397103-73c9-4459-ad97-2ab862df69b9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 15:58:40","userId":null}
{"durationMs":30.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"c02594ac-c9de-40cd-99e8-479e6b36c713","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:40","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":208,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:58:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":415.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:58:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":434.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 15:58:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"559508d3-79a6-44ee-ab61-a866f4e9f988","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:40","userId":null}
{"durationMs":95.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"33f1ed4e-da30-47a6-b2e9-7274e3ce8c85","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:58:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":106.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c6b1272c-d2ed-4ba8-975e-1c44c67d8e9d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:58:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":482.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:42","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":490.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:42","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"81ad2b10-1bb1-4302-9ccb-4eeb6aa2cc28","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:42","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":51,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"881fcb1b-2390-4290-bf87-fa36b87cba1b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:44","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2dac8633-05ef-4ea9-97fa-02f65a7d6056","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:49","userId":null}
{"data":{"id":null,"label":"Librarian Portal","name":null,"type":null},"durationMs":258,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:49","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"977bd218-61ce-4474-b2a1-e2a7790e4c32","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":95.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"1bd6c7c0-8925-4f78-af4a-23b04a861cc7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:58:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":82.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/my-loans","requestId":"6fe5302d-f5a0-42a4-a548-adf521fde456","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:58:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":77.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/new-arrivals?limit=10","requestId":"4746123f-a485-41fe-89a0-81ffc0a9b9d4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:58:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":114.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"d7e7692a-6625-4e96-ad9f-432259f737c6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:58:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":100.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/settings","requestId":"d4874b62-9c79-4076-886c-c269c8fecd42","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:58:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":200.81,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a3175d18-4026-402c-8384-cac193fdb90d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:58:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":157.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"d2ade942-c22e-4582-ad5a-497dba233c1b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:58:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":188.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2672958f-8889-4430-bb8e-1607bd835f5d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:58:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":72.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/my-loans","requestId":"c860124a-be0c-4b11-a755-ddb1b4b55490","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:58:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":58.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/new-arrivals?limit=10","requestId":"02776807-7918-44f2-a8c0-f6c2e83b5d01","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:58:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":61.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"accad051-ad93-45da-b95a-7b7df672b3e8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:58:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":53.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/settings","requestId":"685bcc61-4ea7-42af-bbfa-40450ac900d4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 15:58:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":636.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/my-loans"},"durationMs":734.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/new-arrivals?limit=10"},"durationMs":745.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/stats"},"durationMs":753,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/settings"},"durationMs":757,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":769.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":774.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":777.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a3f81a1e-3ef3-4bc1-a5e4-5ff1413a7566","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/my-loans"},"durationMs":446.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/new-arrivals?limit=10"},"durationMs":441.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/stats"},"durationMs":439.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/settings"},"durationMs":436.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:58:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9f6a54e1-a867-4bf5-aaf5-d0b6a7c6809e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:58:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 15:59:00"}
{"durationMs":98.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6c99fc65-6207-48dd-a20f-f45d473a97f8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:59:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":60.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b920b83d-7386-4f8d-859d-dad6fd301cc4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 15:59:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":482.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:59:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":447,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 15:59:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ed983c5c-ce47-40e9-bf69-104a0cda1287","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 15:59:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 16:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 16:00:00","totalConnections":1}
{"durationMs":2.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fd2d9ed4-3b4a-4057-9dce-222a38e7ec11","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:00:02","userId":null}
{"durationMs":62.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"39c624e1-48f2-4237-8d16-079dccc22184","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:00:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":53.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"26ffa420-eceb-4805-81a1-b501a0a71562","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:00:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":564.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:00:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":556.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:00:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6d04631-68db-45fd-83a9-24002ee999d7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:00:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:01:00"}
{"durationMs":64.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"012e556c-aaed-489c-8f89-b03ab38b0a9f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:01:08","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/library/returns","navId":"1788699662726-887462","text":"Returns"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/library","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:01:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library","href":"/dashboard/library/returns","navId":"1788699662726-887462","text":"Returns","to":"/dashboard/billing"},"durationMs":560,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:01:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library","navId":"1788699662726-887462","to":"/dashboard/billing"},"durationMs":560,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:01:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library","navId":"1788699662726-887462","to":"/dashboard/billing"},"durationMs":610,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:01:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.18,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1f79639d-f8eb-4e31-97b8-04bef7c8bac4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:01:08","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/billing"},"durationMs":457.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:01:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.96,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fa41edda-9eaf-4321-b36c-545c5f9f1e31","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:01:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/library/catalog","navId":"1788699669507-359989","text":"Library Catalogue"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:01:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"71b3a647-8264-440d-b5b6-533f2f89846c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:01:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Upgrade to Free-90-Day-Plan","name":null,"type":"button"},"durationMs":26,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:01:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.18,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fbe8ef79-c9da-4207-9178-5220759f93ea","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:01:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":159.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1adca6bf-e29c-4cdd-b64e-71b91da9e360","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:01:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":203.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5cb4a4bb-6955-4bbb-a699-84a0e4db0a13","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:01:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":562.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:01:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":605.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:01:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f4dd775b-4793-414f-b792-5bbb3810cbe8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:01:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Upgrade to Free-90-Day-Plan","name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:01:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e7e91add-a363-459e-bdc7-275346dc0081","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:01:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:02:00"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":117,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9206a629-8fc0-4221-9d30-c7bf25eaa019","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:02:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33d2713c-b75c-4d0f-ba73-fef817305a73","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:02:55","userId":null}
{"data":{"id":null,"label":"Librarian Portal","name":null,"type":null},"durationMs":322,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:56","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":28.62,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee5005b9-c1ff-48ef-9b4f-0beee3f0cebe","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:02:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":61.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"0af52a91-7e4f-4de6-b80e-83fdab4f8122","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:02:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":132.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"c6e74865-ab1c-4e3d-b3ad-48d2be650dbd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:02:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":256.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3191d23b-7a59-47e9-8acb-50e17cdf0389","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:02:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":254.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"fb28193d-4dbe-45cf-8958-53e8a3eb1ee8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:02:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":290.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1713b3f0-96de-4ec8-b240-af5fcf180e65","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:02:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":287.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/new-arrivals?limit=10","requestId":"4c2a93ef-cc3c-407e-a700-1c6aec15ab7f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:02:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":282.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/my-loans","requestId":"210c6644-8647-4e8e-a110-dd2595333ad6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:02:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":301.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/settings","requestId":"e9d085c4-a65c-4d45-a9b6-a394c177d517","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:02:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":20.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"8821e279-7d3a-4df4-8712-8d091a3b2d8f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:02:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":472.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/stats"},"durationMs":601.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":740.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":744.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":749.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/new-arrivals?limit=10"},"durationMs":795.3,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/my-loans"},"durationMs":800.3,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/settings"},"durationMs":805.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2f8b1e0d-cd7c-4e0f-a097-dd8877093b71","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:02:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/new-arrivals?limit=10","requestId":"93081fdb-53bc-47ec-be4d-453315cc2ba3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:02:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/my-loans","requestId":"33a89bef-5b32-4648-a059-1309267d6079","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:02:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.81,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/settings","requestId":"7627d981-e028-4493-997d-f00c92f79955","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:02:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/stats"},"durationMs":583.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/settings"},"durationMs":573.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/new-arrivals?limit=10"},"durationMs":592.3,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/my-loans"},"durationMs":587.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:02:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7097cf1e-0942-47de-a938-ff268d0e4ed8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:02:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:03:00"}
{"data":{"href":"/dashboard/library/circulation","navId":"1788699778191-848442","text":"Circulation"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/library","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b488fd79-d4ef-4222-841e-d021fe8c3478","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.58,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/borrows?page=1&limit=100","requestId":"17a52cbc-f495-4bc5-b417-7c8a2a2712dd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library","href":"/dashboard/library/circulation","navId":"1788699778191-848442","text":"Circulation","to":"/dashboard/library/circulation"},"durationMs":975,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/library/circulation","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library","navId":"1788699778191-848442","to":"/dashboard/library/circulation"},"durationMs":975,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/library/circulation","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library","navId":"1788699778191-848442","to":"/dashboard/library/circulation"},"durationMs":1088,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/library/circulation","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/borrows"},"durationMs":497.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b6430ee4-7d16-4fc8-8ec7-31ecf9105ef0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":29.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/borrows?page=1&limit=100","requestId":"2e782cc1-30ba-464a-ad44-bd685324b697","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/borrows"},"durationMs":518.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8d8d1a41-a20b-4801-b571-147cd40ee27a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/library/catalog","navId":"1788699785120-825270","text":"Library Catalogue"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/library/circulation","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"17eb8c80-4672-4026-94c3-8cded6c631cb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":47.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"4c6e9735-7676-4fb4-b1a4-f7766500f1fc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":54.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/books?page=1&limit=20","requestId":"3b208c1f-8dbd-4887-a809-37ea278396e6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/categories","requestId":"d2c65ed3-bfcb-4c35-84dc-e6d19c41d6b8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/circulation","href":"/dashboard/library/catalog","navId":"1788699785120-825270","text":"Library Catalogue","to":"/dashboard/library/catalog"},"durationMs":976,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/library/catalog","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/circulation","navId":"1788699785120-825270","to":"/dashboard/library/catalog"},"durationMs":976,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/library/catalog","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/circulation","navId":"1788699785120-825270","to":"/dashboard/library/catalog"},"durationMs":1201,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/library/catalog","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/categories"},"durationMs":587.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/stats"},"durationMs":597.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/books"},"durationMs":600.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a9380620-4863-4b3a-8058-9a17d03a3aaa","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":29.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/categories","requestId":"75a1f7fd-75be-40a3-bfee-38f2e7a4a6b0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":29.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"b47c9a92-91b6-448c-8545-a70f00ea580b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":21.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/books?page=1&limit=20","requestId":"c084b410-6778-49b1-9713-165b6167c9dd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/categories"},"durationMs":390.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/stats"},"durationMs":391.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/books"},"durationMs":389.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"316483d1-2e9b-460f-b482-f10ebf63cfd1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/library/issue","navId":"1788699792381-739008","text":"Issue Book"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/library/catalog","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bf79cfa6-44e0-434a-9c77-77090e087875","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/catalog","href":"/dashboard/library/issue","navId":"1788699792381-739008","text":"Issue Book","to":"/dashboard/library/issue"},"durationMs":883,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/library/issue","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/catalog","navId":"1788699792381-739008","to":"/dashboard/library/issue"},"durationMs":883,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/library/issue","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/catalog","navId":"1788699792381-739008","to":"/dashboard/library/issue"},"durationMs":977,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/library/issue","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a20c723f-29b3-4daf-b7fd-0d0d2e3cc283","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Issue Book","name":null,"type":"submit"},"durationMs":53,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/library/issue","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:42","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7de26e3c-69a0-4e6b-bd03-95db0af4c570","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:42","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":50.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/books?page=1&limit=20","requestId":"3e1de341-20db-4627-8549-656be49d74b5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":46.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"4fbf59aa-3d20-42eb-b228-10d28f2eac8f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":40.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/categories","requestId":"e0ac8515-582f-4de8-89b8-6f3c41512956","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/library/catalog","navId":"1788699826109-995289","text":"Library"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/library/issue","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/issue","href":"/dashboard/library/catalog","navId":"1788699826109-995289","text":"Library","to":"/dashboard/library/catalog"},"durationMs":292,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/library/catalog","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/issue","navId":"1788699826109-995289","to":"/dashboard/library/catalog"},"durationMs":532,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/library/catalog","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4918f6b5-ef64-496e-897a-65abe0e4f89e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/books?page=1&limit=20","requestId":"4914e0c3-8e42-4c85-87ae-8725f41f6bd4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"07eff257-e10b-4e73-bcbe-12cff5d353cc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":29.25,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/categories","requestId":"aaea77c0-83be-43a2-b573-a220ed689880","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:03:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/books"},"durationMs":480.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/stats"},"durationMs":484.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/categories"},"durationMs":487.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"25dd7f22-7929-4b64-91ae-3a0ae105bf08","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/books"},"durationMs":452,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/stats"},"durationMs":444.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/categories"},"durationMs":442.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"841ea7cf-24de-4dd5-8302-af21f67787ae","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":44.52,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"88eceaf2-1a66-43ae-ae30-b5169368a1cd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:03:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":51.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8511c0b7-4e34-4482-bb9d-e3f7377d2c08","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:03:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":466.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":481.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:03:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.22,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2c2b9aae-8d47-4cc1-9637-ec2e618d3cd2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:03:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:04:00"}
{"data":{"href":"/dashboard/library/returns","navId":"1788699835310-990384","text":"Returns"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/library/catalog","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:04:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.58,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"43b8ab04-c372-4e14-b0d2-f32a18894e2f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:04:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":22.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/issues?page=1&limit=20&status=ISSUED","requestId":"94996b5c-ad2a-462a-ae6e-70423609d119","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:04:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/catalog","href":"/dashboard/library/returns","navId":"1788699835310-990384","text":"Returns","to":"/dashboard/library/returns"},"durationMs":997,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/library/returns","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:04:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/catalog","navId":"1788699835310-990384","to":"/dashboard/library/returns"},"durationMs":997,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/library/returns","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:04:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/catalog","navId":"1788699835310-990384","to":"/dashboard/library/returns"},"durationMs":1394,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/library/returns","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:04:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/issues"},"durationMs":594.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:04:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"54b298df-bcc8-438e-afe8-7385d6672f4f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:04:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/issues?page=1&limit=20&status=ISSUED","requestId":"910e6fe8-504e-4160-8ac7-dadd1ec49f1e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:04:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/issues"},"durationMs":548.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:04:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"02a56b68-fb46-4046-9dcf-cb955936c3ba","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:04:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":52.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"02544a67-89a7-439c-8f82-24c5c2b13c91","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:04:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":72.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b82bf8e7-efef-40d5-97f3-a7c8a8b4de4c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:04:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":459.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:04:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":488.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:04:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c7bbf527-6a70-4fdf-8434-83216eed2c1a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:04:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 16:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 16:05:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3b7927e-b7bd-4b91-a0f8-1fa1fc571e08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:05:02","userId":null}
{"durationMs":66.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b3db2085-49e0-4c8d-9d2f-44096c55a496","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:05:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":73.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"66637318-a736-42d3-a3ce-3f700064e670","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:05:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":492.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:05:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":480.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:05:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c70c4af5-ea87-4b5f-82ec-f7dcbbb3af84","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:05:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:06:00"}
{"durationMs":166.62,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f41a09fd-89de-46ba-acbe-116a4230398e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:06:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":177.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"42b0f478-c344-4acf-b0e5-3d6ac48401d3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:06:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":571.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:07:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":561.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:07:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":18.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"03a818e5-5443-4aa1-badf-3eb225a5a0ab","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:07:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:07:00"}
{"durationMs":96.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c1349040-fbb8-444d-b8f4-f7b299402b17","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:07:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":56.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"156b872c-6ddd-4748-be5f-f9ebeabfcc21","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:07:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":498.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:08:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":491.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:08:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f4139490-be91-4177-98c0-9c1be606f916","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:08:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:08:00"}
{"durationMs":94.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"bd3854f8-0a49-4406-893e-10c70ef2567f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:08:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":100.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5be15074-7e94-4b0c-a98f-25d9bf904d64","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:08:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:09:00"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":560.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:09:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":574.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:09:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4a0c0e8d-5c2f-47f4-9031-f8990575fb62","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:09:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":84.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"985d5781-b34a-47de-8b90-4d345c943a18","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:10:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":78.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"6b2cf1a2-d4db-4ba6-a44e-cb3f39283af9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:10:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 16:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:10:00"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":437.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:10:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":438.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:10:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"33200fd0-29ec-4ccd-a92f-d720ddc84080","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:10:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"208797f5-37e4-4c91-bf75-c7ea8b7fc82b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:10:02","userId":null}
{"durationMs":63.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"ee07a533-7733-49d5-97a7-fd676fac7e9b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:10:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/library/catalog","navId":"1788700253826-432916","text":"Library Catalogue"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/library/returns","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:10:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/returns","href":"/dashboard/library/catalog","navId":"1788700253826-432916","text":"Library Catalogue","to":"/dashboard/billing"},"durationMs":465,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:10:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/returns","navId":"1788700253826-432916","to":"/dashboard/billing"},"durationMs":492,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:10:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fa8c681f-bdd0-484f-9a76-b0e5be35a144","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:10:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/billing"},"durationMs":407.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"06061bd7-f63d-4720-ae4b-f7ea140dca70","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:11:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:11:00"}
{"durationMs":57.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"dfd822fa-4321-4a84-bb54-43fc66fd08be","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:11:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b2a94aa8-9743-48c9-8a61-82d7881b78ee","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:11:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":536,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":526.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"17eb6dff-c76a-44d7-a460-5af7d897c019","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:11:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":58.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"aadf12fa-ff5b-44d5-a4f4-eca0745aa8f6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:11:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":64.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"5de1490f-8488-4f20-bbc2-84447f84aa6f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:11:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":842.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":793,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.03,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eba3eafc-75fc-465e-aab2-5201a6e543f1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:11:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d1e218ef-b8b8-46f4-bf57-8868c66ca25c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:11:21","userId":null}
{"data":{"id":null,"label":"Librarian Portal","name":null,"type":null},"durationMs":264,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:21","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.22,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"906e8607-1a36-4fbd-84c6-f1d9631d1cf3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:11:21","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"357ef7f2-9b22-450f-8cdd-8a0d4b209f23","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:11:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":178.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d00a4c91-e431-4e6e-b5ad-df4d8560b18e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:11:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":171.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"5d3c54f9-56ca-42a0-8706-aa2895503b62","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:11:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":193.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b2148bd7-68b1-4ae1-87e3-add6416a9b27","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:11:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":224.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"de1374f3-77c1-41eb-afff-267f40d22f26","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:11:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":230.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/new-arrivals?limit=10","requestId":"1c8b358c-bca0-4dda-a143-3017d9bba08d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:11:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":248.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/settings","requestId":"0e9646ac-8238-4c48-a6aa-d7f1c831797c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:11:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":227.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/my-loans","requestId":"351aa7e3-d76a-4429-881c-49d36520dc4f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:11:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":477.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":691.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/stats"},"durationMs":700.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":710.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":719.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/new-arrivals?limit=10"},"durationMs":736,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/settings"},"durationMs":755.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/my-loans"},"durationMs":759.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b5b4e2e0-00c3-4214-9f98-a5868b45847e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:11:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":63.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"e3fafc86-fbb3-4696-9e90-48b0d162f9e7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:11:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":56.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/new-arrivals?limit=10","requestId":"279452e7-90be-436f-bb5a-b274a8ee4f4c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:11:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":43.67,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/my-loans","requestId":"57b91520-6d66-466d-be6d-850704a2cd2e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:11:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":50.81,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/settings","requestId":"1044c811-3f25-4fe1-9a8c-7b343ddeceff","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:11:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/stats"},"durationMs":462.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/new-arrivals?limit=10"},"durationMs":436.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/my-loans"},"durationMs":414.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/settings"},"durationMs":424.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6608e7f-70bf-4439-88ec-44ecb9e75aa4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:11:24","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/library/catalog/new","navId":"1788700303244-323601","text":"Add Book"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/library","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:48","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library","href":"/dashboard/library/catalog/new","navId":"1788700303244-323601","text":"Add Book","to":"/dashboard/library/catalog/new"},"durationMs":245,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/library/catalog/new","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:48","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library","navId":"1788700303244-323601","to":"/dashboard/library/catalog/new"},"durationMs":327,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/library/catalog/new","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:11:48","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1d77a3b8-1c3e-4dd5-9af9-6887c9f23c4f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:11:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":63.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"efc62b60-66b4-4501-9805-fcc2bf4f8896","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:12:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":49.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/my-loans","requestId":"c38fcbe1-750f-40ed-b0cf-c791c3697120","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:12:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":60.22,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/settings","requestId":"71d81fb0-47ea-4ca7-a271-130c9fcf664e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:12:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":52.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/new-arrivals?limit=10","requestId":"77af6805-690d-4452-818a-7149d141643f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:12:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:12:00"}
{"data":{"id":null,"label":"Go Back","name":null,"type":null},"durationMs":8,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/library/catalog/new","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/catalog/new","href":null,"navId":null,"text":null,"to":"/dashboard/library"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/library","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/catalog/new","navId":null,"to":"/dashboard/library"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/library","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/stats"},"durationMs":487.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/my-loans"},"durationMs":492.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/settings"},"durationMs":496.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/new-arrivals?limit=10"},"durationMs":498.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e851ce08-4f30-4840-8017-636faca16509","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:12:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":56.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"1ccce6c2-d4db-4017-b599-089cf9ef7cb2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:12:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":41.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/settings","requestId":"31ba6a21-ffbe-4d33-aaf0-29b55fc242e0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:12:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":49.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/my-loans","requestId":"bd9e5502-1e52-414c-9208-bf01b7c1ad0d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:12:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":44.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/new-arrivals?limit=10","requestId":"61265799-2f49-42fa-89a0-a4e8188e71c8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-06 16:12:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/stats"},"durationMs":361.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/settings"},"durationMs":355.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/my-loans"},"durationMs":363.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/library/new-arrivals?limit=10"},"durationMs":356.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3f33e512-b03e-4c8d-9fbf-cafefe346271","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:12:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/library/categories","navId":"1788700318610-847466","text":"Add Category"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/library","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library","href":"/dashboard/library/categories","navId":"1788700318610-847466","text":"Add Category","to":"/dashboard/library/categories"},"durationMs":317,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/library/categories","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library","navId":"1788700318610-847466","to":"/dashboard/library/categories"},"durationMs":375,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/library/categories","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e720ba47-353e-463a-813e-7c82bf3d0660","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:12:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":53.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"4ddef587-7193-436c-b60e-ea22610d04f2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:12:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":241.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"3e611dfb-6930-42d3-afb1-0ea80b70ce94","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:12:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":282.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"3e232b3a-f075-4a80-a94b-a295196fd0b5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:12:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":356.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"7695a498-72bb-4199-8549-ae6915635910","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:12:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Go to Dashboard","name":null,"type":null},"durationMs":44,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/library/categories","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/categories","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/library/categories","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":92.67,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aa2a7fb5-e436-4f49-ab55-be0bcf891315","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:12:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":475.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"f304cd11-fde2-441f-befc-a9b8ce4bfc08","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:12:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":455.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"d0e80024-7f83-48b7-af7c-390562b0b537","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:12:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":414,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"247a66e7-ab5d-4933-9b34-9eebdbb0376b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:12:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":433.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"770e238f-db6a-4a1c-a4d5-3a6a41bcd709","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:12:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":479,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":665.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":670.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":704.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":784.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":786.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":849.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":854.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:12:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"999c4233-57d2-4fc6-92dc-9cb360accb9d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:12:20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:13:00"}
{"durationMs":48.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f7c9d297-db47-45e6-831a-3d40e258851e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:13:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":53.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ff47a084-d286-49d5-ab33-1ff6aedf6ece","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:13:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"0eb0e57b-e846-45a7-9d99-01e5260844e6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:13:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":366,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:13:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":356.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:13:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":340.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:13:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b1916a83-da5a-4059-8e3f-c16b0c0aea9d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:13:20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:14:00"}
{"durationMs":2.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6f75c035-dd0a-4a5f-839e-27a4114bfd81","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 16:14:19","userId":null}
{"durationMs":2.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ccd4219b-b644-4945-a6d1-a67cf003bf4e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 16:14:19","userId":null}
{"durationMs":38.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"b6e5b76c-2c83-440d-ae3a-bf26fb387496","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:14:19","userId":null}
{"durationMs":49.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"1e69161b-3c94-4164-a4d2-ca9ff0c51bb0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:14:20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":178.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"bb60eacf-2064-48fa-850f-d1f0a2113794","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:14:20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":175.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"83067a18-fc1b-4d71-b14e-afd248c3bf22","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:14:20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":339.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:14:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":340.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:14:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":340.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:14:20","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6bd05f1f-393f-43e3-8edf-3e600d7875f1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:14:20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":481.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:14:21","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":485.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:14:21","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"32171f7f-9d4c-47bf-80ff-049e226568ac","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:14:21","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 16:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:15:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae315780-fde5-43fe-a31f-6c923bee1504","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:15:01","userId":null}
{"durationMs":1.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"870b8de9-2814-45d5-8ae6-c0c4c09ad4bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:15:04","userId":null}
{"data":{"id":null,"label":"Guardian Portal","name":null,"type":null},"durationMs":277,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 16:15:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2c39cdc3-70e0-4ae5-9d5a-62a41d02b376","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:15:04","userId":null}
{"durationMs":86.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"45b06965-9de4-4d3a-925d-c26594a4c1fa","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:15:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":107.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"19787e39-e9c8-4512-97bf-e7f9b59491ab","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:15:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":58.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b1b9388c-eabc-440d-a745-1b1e3b4a93e4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:15:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":78.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c66297a3-83ca-4192-81bf-5ccf69869731","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:15:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":93.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"8997f9c1-5b16-4cb0-9126-a1ae7a6798e5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:15:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":77.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9ef5fa27-e977-4480-8442-113df5df31d4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:15:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":115.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"37a2bc7c-d800-4090-a33b-d60b89c97838","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:15:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":396.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:15:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":406.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:15:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"92914152-2096-4351-aa5d-5e417fd68ccb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:15:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":390.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:15:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":443.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:15:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":448.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:15:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":453,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:15:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":457.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:15:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1c17b256-66be-4c4d-9cee-30d1ebf21534","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:15:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:16:00"}
{"data":{"href":"/guardian/notifications","navId":"1788700556390-777226","text":"Notifications"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"df727d51-4409-4e61-a81a-9fc8ff0731c2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:16:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":67.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications","requestId":"b18abe71-dbb7-4bb0-867f-977b8e076b5d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:16:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian","href":"/guardian/notifications","navId":"1788700556390-777226","text":"Notifications","to":"/guardian/notifications"},"durationMs":961,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/notifications","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian","navId":"1788700556390-777226","to":"/guardian/notifications"},"durationMs":961,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/notifications","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian","navId":"1788700556390-777226","to":"/guardian/notifications"},"durationMs":1099,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/notifications","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":428.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b8a7dfea-c108-422e-b4da-36cfc2cd2369","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:16:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":96.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"688f8f8a-f322-456b-a5ff-7237a2b3e06c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:16:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":93.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"33da2718-137a-4692-9295-6cbc31f368d6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:16:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":404.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":395.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":7.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d704ed79-175f-4c8c-82d0-adad38436fea","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:16:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":52.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"0bfcd83b-11fb-4138-961c-cbd2cad79261","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:16:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/guardian/students","navId":"1788700571334-820450","text":"My Children"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/notifications","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/notifications","href":"/guardian/students","navId":"1788700571334-820450","text":"My Children","to":"/guardian/students"},"durationMs":688,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/notifications","navId":"1788700571334-820450","to":"/guardian/students"},"durationMs":688,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/notifications","navId":"1788700571334-820450","to":"/guardian/students"},"durationMs":839,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8c0916ce-b323-4dc0-b07d-2a9c64ca9987","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:16:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":393.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2698bcd6-0cbd-40f2-bb44-feb434e716f3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:16:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Dismiss","name":null,"type":"button"},"durationMs":56,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:27","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0158df74-cfc6-45eb-b4fa-579bd8120b02","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:16:27","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":57.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"36be62ee-e7c1-4ce8-8cee-745afc068f66","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 16:16:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/guardian","navId":"1788700585203-81558","text":"Home Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/students","href":"/guardian","navId":"1788700585203-81558","text":"Home Dashboard","to":"/guardian"},"durationMs":357,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/students","navId":"1788700585203-81558","to":"/guardian"},"durationMs":551,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":359.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":19.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"72827580-c721-4a53-b445-5c0566b0d493","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:16:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/guardian/profile","navId":"1788700601601-863726","text":"Profile"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"676a0000-4a65-4549-838d-3b10e1feadf8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:16:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":59.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/profile","requestId":"02672a2f-d740-41ef-bd3d-cbccfaaa5749","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:16:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian","href":"/guardian/profile","navId":"1788700601601-863726","text":"Profile","to":"/guardian/profile"},"durationMs":1034,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:48","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian","navId":"1788700601601-863726","to":"/guardian/profile"},"durationMs":1034,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:48","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian","navId":"1788700601601-863726","to":"/guardian/profile"},"durationMs":1076,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:48","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/profile"},"durationMs":375.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 16:16:48","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3288328e-ff95-4b75-883d-04faf7ea5fa1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:16:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 16:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:20:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c0dd8b36-8131-4287-8380-c1fd7013f523","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 16:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:25:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bffc3ed0-d449-4ac0-9992-bf4166664ee7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 16:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:30:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03f7d2de-dcf3-4aa0-a0d2-a60239f6db74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 16:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:35:00"}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1b6310cc-033b-43f0-95cc-84cad8e8a037","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 16:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:40:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"277a242e-7e76-4dea-809f-f62140c927ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 16:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:45:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a5346d6-0f43-4be9-9bd4-97b72f6f747b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 16:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:50:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"acf605c8-c16a-468b-9c0c-3175ac327e3e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 16:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:55:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"547052bb-95c7-4a3d-8130-2db0f4127b92","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 16:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 17:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:00:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"129208ee-5d1a-45ec-9e88-88a7e80e2b8a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 17:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:05:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2da4a3f4-c75e-4ba1-8a4c-f0caf826aa8a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 17:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:10:00"}
{"durationMs":1.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b19bc6e7-840f-4b90-969b-47c9689d1c6a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 17:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 17:15:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dee5a783-174a-41ba-9e66-d1c60aa50cce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 17:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:20:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ed3dc76-cfda-4799-ab8a-464fd373a78b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 17:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:25:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ede8aad4-b7f0-46bd-ba32-a099712e9d60","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:28:00"}
{"durationMs":0.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7bde465e-da65-45b3-ad58-8618a4aac262","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:28:24","userId":null}
{"durationMs":4.18,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"c51926d7-6142-4fa7-9bff-6083368a177f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 17:28:28","userId":null}
{"durationMs":2.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"6e1cb9c2-8416-4620-a690-3d25c83dcb33","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 17:28:28","userId":null}
{"durationMs":1.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"24effaf1-40f0-4570-ae3a-6a331bdbd85f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 17:28:28","userId":null}
{"durationMs":1.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2e83b6a8-3f8f-4d4a-9ebe-7667d6be86c8","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 17:28:28","userId":null}
{"durationMs":1.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ea8494ae-fe5e-4c19-9559-00cfa17b5b2d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 17:28:28","userId":null}
{"durationMs":1.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"a3a6d7c5-b074-4f69-b05c-af360e5684ab","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 17:28:28","userId":null}
{"body":{"refreshToken":"[REDACTED]"},"error":"Refresh token expired or revoked","ip":"154.79.248.144","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Refresh token expired or revoked\n    at Object.refreshAccessToken (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:587:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async refreshToken (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:43:20)","timestamp":"2026-09-06 17:28:29","url":"/api/v1/auth/refresh-token"}
{"durationMs":14.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"362d1eb8-9adb-45c0-8e6c-4bfd5388c2dd","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 17:28:29","userId":null}
{"data":{"method":"GET","status":401,"url":"/academics/streams"},"durationMs":1536.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 17:28:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/academics/classes"},"durationMs":1613.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 17:28:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":1779.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 17:28:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":2284.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 17:28:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":2324.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 17:28:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":2683.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 17:28:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f5678a45-0361-4b43-a74a-f5fa156f6fe0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:28:30","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 17:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:30:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"caafb62b-08ef-4bf3-ac6d-c3d163af7bc7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 17:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:35:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae005e3b-b512-402e-b165-6e7185b5dc3b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 17:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:40:00"}
{"durationMs":1.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03f9fd06-c05d-4201-9a65-8f7c7dfef2da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 17:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:45:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c6aaa7d2-0984-4911-9a18-b8c47380469f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 17:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:50:00"}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"35076795-12e9-4b16-990b-c082fde7efd5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 17:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:55:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"62db6fde-079f-47c4-8fc1-494b3a12ed78","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 17:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:58:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 18:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:00:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5bd34784-6b7c-404a-80e0-43bcc5cc762e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 18:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:05:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"182bd51f-86dd-4cb7-a456-92910345125e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 18:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 18:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:10:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a399272-f38e-44b9-883e-cd425663b77f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 18:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:15:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a345626-c231-4d91-87d6-c553db4fe8f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 18:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 18:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:20:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab91a327-801d-48e3-963e-0c75b2cb4e12","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 18:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 18:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:25:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6589666d-16e1-48fd-9178-38d04a7e84e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 18:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 18:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:30:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4999b4c-6043-4722-b464-1f2affba3e0d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 18:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:35:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef6fd666-9b10-4ec7-96ac-edb2d81bcea1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 18:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 18:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 18:40:00","totalConnections":1}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f8ee4e7b-dc7c-4397-9e90-5441de9c0040","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 18:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 18:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:45:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ceb705c-466b-41b7-bb90-765b2cc62451","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 18:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 18:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:50:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf752672-5126-4b85-a66c-61a7787d22e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 18:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:55:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"263296df-9306-4b56-aaf0-fe890ab0cbaf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 19:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:00:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"296dafa5-9a0f-40d2-a32e-283c743847b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 19:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:05:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cd73bf79-4d6b-43e3-a906-fc05f1a27152","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 19:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:10:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"513a0945-9056-4753-97ad-8b69de54ae49","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:14:00"}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fdfa0960-b3bb-4f09-85a2-c1387a1900ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:14:25","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 19:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:15:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2f8a668a-82e8-4e8a-81e4-06d37a37d3e8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 19:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:20:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f9f5fc6-0927-4169-96fd-087f1124ec08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 19:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:25:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7936356a-b060-48ff-b42f-2001639ef543","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:27:00"}
{"durationMs":1.18,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0d775725-2a1f-414b-a8e3-b174d9a63076","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:27:52","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:28:00"}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":121,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 19:28:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.85,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c13918d6-8531-41b8-b117-8707d20ea625","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:03","userId":null}
{"durationMs":943.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"0deac155-5956-4f90-91f9-813d45d2471c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:03","userId":null}
{"durationMs":54.37,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"046ffde3-ff1c-4757-8e49-a40357c6d93a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":90.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"748854b9-aaf2-4d8e-9b2e-70591843774d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":105.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"49044395-7ddf-4f8f-9498-804293c0c5e6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":211.55,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"e5314024-825f-434b-b6ed-5944e9197d3d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":158.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"be439012-e9f5-4cb5-bd3b-ead98bf72caa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":171.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"ae9f6400-1505-4fc9-8d17-ed206e85b5d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":90.11,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"1099ee8d-8eba-4bd6-8768-fce6e66898e1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":82.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"549ecb35-832a-4f5b-88c5-7a2575eb7ba4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1287.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":366,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":410.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":413.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.46,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"92ce0fb5-4f12-42d2-9bb3-4c8a44493a0b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"26bbe9c0-41f9-4354-bb1b-e219c9c20ef4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.04,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"bbdd7178-ccf8-4c69-b817-46a4d163150d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"37286548-cd92-4bb8-b863-e41e0a7d71c0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":232.81,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"e125e067-f096-4e5f-ac05-f3afb23b856d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":286.74,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"17e31c59-97a3-4b93-9fd1-7cc94af56d80","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":255.17,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"7e5be778-d086-4afe-abb2-484b3a1b840a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":276.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"009e914e-609c-4496-b4d0-7595b9982ddb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":241,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"1b76bb44-c201-496c-82bc-518cf9d18500","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":287.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"7f0ef7a8-891e-4884-91b8-e2a302fc0ee9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.2,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"8a289562-9c25-495f-afe6-47c42e849d0a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1083,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1086.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1090.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":743.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":746,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":748.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":749.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":374.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":498.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":557.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":583.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":585.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":587,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":588.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":835,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"816be43a-7371-43fc-808a-ec3496728272","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":222,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"30d096ab-39af-4ee6-9460-d57713fccc44","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":44,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:37","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6978c44-e4be-4823-b586-bb124459fcc2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":157,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-06 19:28:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fc438be8-b937-4c57-b064-bdfa70f4f611","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 19:28:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/dashboard","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 19:28:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d97967d4-c4ad-44c4-a491-0be84cf052e4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:50","userId":null}
{"durationMs":1.64,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e91d180e-04d3-431d-a061-4f4b5a407755","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:28:52","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 19:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:30:00"}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c9efbff-0da3-469c-8319-48b9b3f79453","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 19:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:35:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8321291d-7f75-46fd-81b9-e0664ff0f04d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 19:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:40:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f5b1784-653b-4ee9-b4a6-62e4ccc5737b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 19:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 19:45:00","totalConnections":1}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10a62485-0035-4822-952a-e79573fb37d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 19:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:50:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"77a3d3e6-81be-48ff-9a32-09515412dcce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 19:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:55:00"}
{"durationMs":1.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"71dd1d78-db8b-4a8f-8315-38e6157ef98b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:58:00"}
{"durationMs":4.96,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"33b33b86-678e-404f-b1d7-e1c15b39fe44","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":2.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a28a2476-d8fa-4c32-a8b5-54dcc9d13078","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":1.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"f817f6e5-a6e0-43fd-b525-e1e6026773c8","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":1.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"7f60248a-bd60-4533-90a1-8f5b559c036a","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":1.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"4436d03d-9814-42f1-bb70-dc882d919310","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":1.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"f5c68fb0-f0c2-4270-88d2-2db2ed45313d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":1.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d906585f-ea9f-4ee1-930e-d24b7ce66153","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":1.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/profile","requestId":"34f9faaa-f2de-40dd-892c-2d791684f5f5","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":3.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f14c301b-75de-48bc-a27c-97fd3545e417","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":2.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"6035aed1-ac04-488e-a428-9674c7401b0d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":1.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d6e80416-96d6-4682-ab98-c24ce8deedc4","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":1.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"c2268c3c-d92b-4ae9-af99-00f29a0c990c","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"body":{"refreshToken":"[REDACTED]"},"error":"Refresh token expired or revoked","ip":"154.79.248.144","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Refresh token expired or revoked\n    at Object.refreshAccessToken (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:587:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async refreshToken (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:43:20)","timestamp":"2026-09-06 19:58:20","url":"/api/v1/auth/refresh-token"}
{"durationMs":15.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"8d4a939d-92f0-4c14-83db-559d616fb28e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":130.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"376c4420-15f8-4612-b8e6-981ed56239b3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:58:20","userId":null}
{"durationMs":84.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"2bb5c5b9-915a-4b5e-9727-1cde8e271fc7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:21","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":201.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"a3c6a5ad-3400-4b0c-a50b-fd338294322e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":315.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"b28f3e13-469c-4bf8-b9a3-0e9f83657114","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":323.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"82aca9f9-2794-44ed-bc04-882ecd3af726","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":342.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4fea59ed-1b90-45ed-a108-4b851b9982ee","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/academics/grade-levels"},"durationMs":1456.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1469.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":1495,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":1535.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1549.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/academics","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":0.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bef5cc8b-c1ac-483a-a3d9-bdc2a39f9b62","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:58:22","userId":null}
{"data":{"method":"GET","status":401,"url":"/guardian/school-info"},"durationMs":1265.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/guardian/dashboard"},"durationMs":1310.3,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/guardian/profile"},"durationMs":1324.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1718,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":1714.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1724.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":1727.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":469.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9ad68cf4-7bad-485e-8bb2-4c20e84b39fd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:58:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":329.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"a1910ded-fa86-4a31-b972-bca5d2056098","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":353.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/profile","requestId":"e4b9aad0-a9f8-4482-b9c7-5b32bc70b4f4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":744.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":982.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":991,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":994.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":1005.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/profile"},"durationMs":1012.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6aa9f991-4c8b-4a45-bcb0-09f3c59879fa","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:58:24","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":37.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"1b1ce986-6482-4b15-a00e-846b4a9cc8ba","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"7021bb01-d7ec-411d-823b-6718d38cf6fd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":62.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e1519454-58dc-40c8-b78f-1b40eb0e03eb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":46.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"fbe1cd6e-2ceb-41aa-adb6-f4718d77acaa","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":39.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"59857f62-8ccd-4e21-a404-d764553eb3fa","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":94.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"c6027ef9-7e5e-4fed-83ec-53d6c2437a1b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:58:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":81.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"ed5d75f8-f8d5-4852-a3aa-5e102ebacf6b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:58:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":127.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"981e373f-035a-4f20-a662-70e7ef1712b3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:58:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":132.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"943a4d26-0523-4aae-97de-e04ca1f07a99","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:58:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":130.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"a30e427a-1fc0-4e48-8ba2-a7f5ff426ad2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:58:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":100.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"83882d27-6e0d-4c6e-88c3-04d097b227d8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":81.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"47713269-a694-4ce1-a525-aa55f4338c1a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-06 19:58:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":524.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":527.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":532.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":534.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":371.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":420.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":431.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":446.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":498.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":510.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9d5f95ba-f2e1-4d67-913a-9a1cbcd7f4fb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:58:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":530.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:27","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":536.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-06 19:58:27","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d81dee5f-9687-4851-8698-20b8bdb981f9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-06 19:58:27","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 20:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:00:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"387b54fe-51cf-4402-8015-12d6f20973cb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 20:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:05:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ec45ddf2-03ef-4a38-a468-754e52c55819","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 20:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:10:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"afb4fdfc-a16b-4ef9-a38e-0bc2c5c8548e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 20:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:15:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5390791-36ac-41d2-b780-13bdbd81194c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 20:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:20:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58cb450a-b81a-42a2-989e-ded45cc611d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 20:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:25:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ba0978f-5c27-44e3-a61f-21e405af1ddd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 20:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:30:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cdf4fdbd-4ac9-4ddf-9d60-167466c3f041","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 20:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:35:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6b2a4a4-325c-4420-99b6-795043c3b2bb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:38:00"}
{"durationMs":1.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f21e5023-3ffc-4503-a9b0-4c593abb6bf5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:38:15","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 20:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:40:00"}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1676d292-c58b-40a6-91fc-10fb022df434","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 20:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 20:45:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"22066952-0e41-4d39-889a-6c939e44c63e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 20:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:50:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ef3ef3fd-9862-4fec-b552-a7152103f7d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 20:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:55:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c4163202-3e7f-46fa-8df9-dcbde9a1e6a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 20:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 21:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:00:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4a29c34a-fd95-4523-b7e3-c2e9b9f1b4b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 21:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:05:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4771a8b-54a7-4e13-bfa0-d38ba559a131","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 21:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 21:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 21:10:00","totalConnections":1}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11275701-2bc4-42e0-88f3-aaffbade90c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 21:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 21:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 21:15:00","totalConnections":1}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2d9ae735-632a-436c-ae31-3559254576ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 21:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 21:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 21:20:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99f171d2-a46d-445c-a620-c2f2656a4f1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 21:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:25:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"16cfcca5-f39a-4e64-8a20-0eadd09453a1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 21:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 21:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:30:00"}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3a20c77-df97-4f46-8c90-6c60d4462301","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 21:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 21:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:35:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"88de596b-a93e-4dd2-9e81-a6588fbb309c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 21:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 21:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 21:40:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 21:40:01","totalConnections":1}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1aaaa7ea-b778-426f-8acc-6e963e57793f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 21:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:45:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aaef2565-1457-40ab-bb1e-16a462bf0a9d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 21:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 21:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:50:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"49ddba79-750c-4fef-8b68-2c4f27b0180e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 21:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 21:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:55:00"}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"43636c0d-8e59-471a-a4a2-b55645c232a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 21:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 22:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:00:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3500db74-706f-4f38-b620-ff1430c998a7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 22:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:05:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eadf9758-4f1b-404e-9e31-4abc227e7449","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 22:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:10:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ba974f6-df2d-45fb-b77b-55bdb4fd9e69","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 22:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:15:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29020cb6-f112-47c1-a0b8-90b6e4a86550","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 22:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:20:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1aabc475-546c-467a-aef7-a089f63f5899","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 22:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:25:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cdee0bf7-b817-4acd-adf9-6a5f7a574b6d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 22:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:30:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d82c4253-fa14-4bd4-bedb-c3e5ddfe7408","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 22:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:35:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9d2f045c-a8f8-4d58-b918-b5c8d1bf8e19","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 22:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:40:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17d0be46-68e1-4726-951a-01d0bf105598","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:41:00"}
{"durationMs":1.77,"ip":"102.0.36.26","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e2c8949c-7c91-4c94-af6a-8841d596de5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:41:41","userId":null}
{"data":{"id":null,"label":"Register School","name":null,"type":"button"},"durationMs":17,"event":"UI_CLICK","ip":"102.0.36.26","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 22:41:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.85,"ip":"102.0.36.26","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"62bb878e-afc2-44a1-861e-c1ccd9b89efc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:41:41","userId":null}
{"durationMs":1.61,"ip":"102.0.36.26","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"264def4e-d6bb-4d29-ad7d-a479ecfca6a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:41:42","userId":null}
{"data":{"from":"/","href":null,"navId":null,"text":null,"to":"/landing"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.36.26","level":"info","message":"CLIENT_EVENT Route path change","path":"/landing","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 22:41:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/","navId":null,"to":"/landing"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.36.26","level":"info","message":"CLIENT_EVENT Route rendered","path":"/landing","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 22:41:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.65,"ip":"102.0.36.26","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9a96f42d-1547-4aac-bd83-647a23bf1e0b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:41:44","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:42:00"}
{"durationMs":1.68,"ip":"102.0.36.26","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1386f557-9ee7-4e9d-b70b-5e4ee137b65a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:42:55","userId":null}
{"durationMs":1.94,"ip":"63.117.14.11","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15e54b1a-85cd-469a-95d3-bef059b43103","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:42:57","userId":null}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"63.117.14.11","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 22:42:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/30.0 Chrome/143.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/dashboard","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"63.117.14.11","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-06 22:42:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/30.0 Chrome/143.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.01,"ip":"63.117.14.11","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0037b307-04b5-4bbd-a70b-56a445e07b54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:42:58","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 22:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 22:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:45:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"50b07afd-3e68-4167-9afe-4464eb40f1ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 22:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:50:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"149ad967-e314-4efc-87e3-cb21f5dc2eb3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 22:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:55:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"35088dfd-ebb6-4586-8758-bf39e471a48c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 22:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 23:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:00:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5d66348-e359-4337-ad65-8375b659276b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 23:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 23:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:05:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4879831-3dbc-4bc4-97be-61da7fca6aa8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 23:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:10:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ccde0edc-e5bf-47f2-b6f1-77dbc6b2ce17","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 23:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:15:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aef19e2e-4061-4c67-9540-90b4d56dc5d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 23:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 23:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:20:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c24e4973-3384-464a-ad25-f35f0c000ab7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 23:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:25:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b6a81a3-18eb-4d81-a323-cdc4876532d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 23:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 23:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:30:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"15a60fcb-35a6-466a-b0f2-1944c02060c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 23:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:35:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b0d7c0b1-21c2-4248-a0a5-a55f07184ec8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 23:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 23:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:40:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c811ee33-b01c-494a-a264-586763324e54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 23:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:45:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"094a67aa-f6b1-4cc5-a84a-ea8646c8cb74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 23:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 23:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:50:00"}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5d17290a-e922-432c-b882-42bf43a8fad4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-06 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-06 23:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-06 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-06 23:55:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"197a461c-ae67-4e03-91fc-c698e5de693d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-06 23:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-06 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 00:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:00:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc33c7b6-d5a6-48b1-8c5f-4ef798b54966","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 00:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 00:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:05:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"402ed58a-04af-47f2-b92a-3e32f365bf54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 00:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 00:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:10:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4f9688d4-405b-44b6-bb57-144b7b6e58a0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 00:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:15:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"abe74251-8fa4-426c-a43c-968b3cab7ef6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 00:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:20:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"efe60453-0950-4603-ac96-0c1b6d09ee50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 00:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 00:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:25:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f672ed2-782a-4735-a546-ae472b27fb74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 00:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 00:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:30:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9fa72ac6-c090-4ae2-abcc-2f9f1b6a99a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 00:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 00:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:35:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c4d2d7e7-71e1-4fca-9b80-a886b9e1a637","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 00:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 00:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:40:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8f691928-9270-4aa9-8fcd-09f348140a45","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 00:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 00:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:45:00"}
{"durationMs":1.68,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"559dd059-b4c7-4f63-9c05-8f4896e136ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 00:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:50:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"377bf159-2660-41ae-b4c4-ed3a2cb05e4b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 00:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 00:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:55:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ec84230-f898-458c-9956-366fb20c4bad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 00:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 01:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:00:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b39e0613-b6e7-49fe-b052-c4ffd29d3368","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 01:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:05:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"faed62dd-d0bd-4f79-9049-f9d4cb75784f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 01:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 01:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:10:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7afd6416-b0b3-46c8-9c79-769236e54655","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 01:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 01:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:15:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2380ec0c-bc06-4155-bbc5-c86dd5682f08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 01:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:20:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3285f801-759e-4040-b49d-e69eb468e695","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 01:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:25:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"579f5202-b7bf-4943-b9a8-e1265b2d5602","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 01:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 01:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:30:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c88ccda2-a79a-4419-be8f-fd0e1de56dfc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 01:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:35:00"}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0909d51f-baa1-45f7-ab0e-adcbb5a608de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 01:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 01:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:40:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"95423b49-e270-437f-b30c-51b95ba142dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 01:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 01:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:45:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5dd293a8-6f3a-4984-ab20-fbb10b17a488","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 01:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 01:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:50:00"}
{"durationMs":1.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1a196dc-e356-4542-b8d6-45382064f93e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 01:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:55:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c83d0dd4-0607-433d-adcf-8ee6b1a87bbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 01:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 02:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:00:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c7ab5565-ddce-478d-827e-5500fc15dc64","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 02:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:05:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8ea1cf8f-19d5-4c2a-878e-bd6d9e8d5b9a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 02:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 02:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:10:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fec36333-7cd8-470c-bb5c-b9bbed088d33","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 02:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:15:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10def40d-4c97-42ed-9718-d1cd583aab63","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 02:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 02:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:20:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bedef202-9bd0-4903-9a7f-ba9a644bf6ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 02:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:25:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"445e06c8-f3df-462d-a195-71964a5b9709","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 02:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 02:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:30:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2d402a42-8722-4fa9-9157-e982b8a1e747","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:31:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 02:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:35:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"07f1acb7-80c0-428e-b4e0-1625ce70f962","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 02:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 02:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:40:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2263091-bea6-4c36-8e3e-75f160221300","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 02:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 02:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:45:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb4aa8be-a839-421b-a888-0fc3d7d84194","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 02:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:50:00"}
{"durationMs":1.39,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5b5a060-1d1f-4e6e-ba95-b599a0f36e58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 02:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 02:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:55:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"05b79021-3e35-4b0f-aa8a-da40a365907e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 03:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:00:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24188424-6930-4319-942b-23a30b568b41","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 03:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:05:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"673bcc87-daac-41f2-95a8-afd26b4f4638","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 03:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 03:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:10:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3800ad98-69b9-4807-bdb9-2979d3ee6cd8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 03:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 03:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:15:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5f1fa24f-4231-46b8-82f4-894f64e2f80d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 03:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:20:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76707cd9-9cae-4942-a18c-1f8f0f337702","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 03:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 03:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:25:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4fbaaae3-bc5f-44ae-aa39-355d2733d976","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 03:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 03:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:30:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce702fd9-abca-495e-ab31-fc2d0c80c4b6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 03:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:35:00"}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f797cb18-8ccc-424a-8749-56a1a7d1cba8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 03:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 03:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:40:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"103870b9-f053-46e2-a12f-6ff31f92271a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 03:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:45:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1e4a4f03-3f5b-4872-9995-f51115c07592","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 03:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:50:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f6b2836e-448e-4a38-b5a2-88439c9c3ffb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 03:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 03:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:55:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"050ce213-1e76-40be-a170-bafc2e81eb0a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 03:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 04:00:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 04:00:01","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:00:01"}
{"durationMs":1.63,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17b55765-50fd-4512-bd09-ae52b0042e92","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 04:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:05:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"368f4f11-0d97-4741-b716-b597db1d0aca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 04:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:10:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cbb6baeb-1632-4c33-b978-8491018834d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 04:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 04:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:15:00"}
{"durationMs":1.36,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cf49d405-561b-450c-8fba-0bb814e25469","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 04:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 04:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:20:00"}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c6e576ea-dcdc-4879-be0e-07b2e0b1c43d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 04:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 04:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:25:00"}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a46134c6-db25-4f54-a153-232e6633cc24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 04:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 04:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:30:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8977290a-cf56-4827-834f-959aa57617ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 04:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:35:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"945501a1-2abd-49b4-98b9-b266314194d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 04:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 04:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:40:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03c306f0-5d75-4530-846d-ef9c65fb3782","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 04:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 04:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:45:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ff2099c0-81d3-47eb-90c6-c4a1577f7098","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 04:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:50:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a4cde045-057e-4bd7-b389-7c2a12001a8d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 04:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:55:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9613683f-ed2a-4a54-957f-db616e271c82","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 05:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:00:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b89cc10d-fcf8-4099-8a06-90f683ac822b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 05:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:05:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7557b9e-0833-427c-a902-b30a112cc892","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 05:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 05:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:10:00"}
{"durationMs":2.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6c8cc164-e54e-45f9-bc86-4f8a05b2ac4f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 05:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:15:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bd48e2c5-a909-467e-aaa2-e536cebeb87d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 05:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 05:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:20:00"}
{"durationMs":1.47,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f75b92d9-cd6c-4a9f-9467-1a09cbeee98d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 05:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:25:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7534dbb1-75fe-46a4-9820-c59cbebe62cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 05:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:30:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0cc1d4ec-13bb-4d97-b605-968d779bb60d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 05:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 05:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:35:00"}
{"durationMs":1.35,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d905311-78e1-4255-a3c5-f340dba41cde","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 05:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 05:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:40:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d6ffb108-a659-4989-958a-e0323c577c2d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 05:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 05:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:45:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"10569cac-5d44-42c5-bf3b-5008657370d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 05:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 05:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:50:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6d7f1132-e2d5-45c2-bc14-e0c28662e530","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 05:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 05:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:55:00"}
{"durationMs":1.32,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"59ebd979-38a1-483d-9785-e6ae8a80f79f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 05:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 06:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:00:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa100750-38b7-415b-af3f-abe63ed58103","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 06:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:05:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c122c0a0-d416-4d1b-b9ba-313111b25d67","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 06:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:10:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8be02ef0-8044-451f-93c4-5ca726801b54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 06:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:15:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7d75a9f-1b3b-4c09-8900-2a5d43723993","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 06:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 06:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:20:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f66cd839-8869-4663-b0ff-a7b91c8ebec6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 06:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:25:00"}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8cc2f339-f93f-4b48-9e14-fda07880e49d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 06:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 06:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:30:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"456bccdb-cf65-4908-b1dd-bb0c483a7952","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 06:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:35:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"391091ba-f8cc-4db0-8639-4d509594802a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 06:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 06:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:40:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ede671ef-a875-4ce2-8b9d-8233c29b6c5e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 06:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 06:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:45:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2e3cc566-b24d-4b97-9497-228cab8cf1c5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 06:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 06:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:50:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7590a148-0baf-4c6b-a6f7-ec02fe0b20c7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 06:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 06:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:55:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"929524ed-ed06-425d-a205-80d01a629664","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 06:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 07:00:00"}
{"level":"info","message":"[CRON] Arrears reminder started","service":"cbc-sms","timestamp":"2026-09-07 07:00:00"}
{"level":"error","message":"[CRON] Arrears reminder failed:","service":"cbc-sms","timestamp":"2026-09-07 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 07:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:00:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6b38a255-a0ad-4500-8770-c6fc5e8d8891","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 07:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:05:00"}
{"durationMs":1.52,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6422bb6-11dd-4381-a825-e58efc584362","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 07:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 07:10:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 07:10:01","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:10:01"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b208c3cf-5375-4d58-b6a6-cb75f13bb562","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 07:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 07:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:15:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24dedfa8-8dde-4776-9d68-c9c190f67c36","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 07:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:20:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f1cf5da-6629-45e4-9a17-6bc9a01a43e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 07:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:25:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f6647b8-e551-4d00-a456-74b20361eb67","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 07:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 07:30:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 07:30:01","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:30:01"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ffd0fb4-34d1-4c62-b14a-592ea7143a04","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 07:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 07:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:35:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3fbb024-68df-4378-bd56-ca264ce87f67","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 07:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 07:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:40:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2191817d-fccc-4a94-8533-9265ee3b7da7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 07:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 07:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:45:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"61a89220-a1a0-4b9a-80ff-19e842c08f7c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 07:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 07:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:50:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ee460ec-96ab-4cf3-b648-dcb02396db6f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 07:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 07:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:55:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b6ec395d-6208-43d8-a7d5-46bd84de1ea1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 07:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 07:59:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-07 08:00:00"}
{"level":"error","message":"[CRON] Library overdue check failed: Cannot read properties of undefined (reading 'findMany')","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findMany')\n    at cron.schedule.timezone [as _execution] (/home/aereuxky/cbcsms-backend/src/jobs/library-overdue.job.js:14:56)\n    at Task.execute (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/task.js:17:25)\n    at ScheduledTask.now (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:38:33)\n    at Scheduler.<anonymous> (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:25:18)\n    at Scheduler.emit (node:events:519:28)\n    at Timeout.matchTime [as _onTimeout] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduler.js:30:26)\n    at listOnTimeout (node:internal/timers:585:17)\n    at process.processTimers (node:internal/timers:521:7)","timestamp":"2026-09-07 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 08:00:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-07T05:00:00.451Z","service":"cbc-sms","timestamp":"2026-09-07 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 08:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-07 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-07 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-07 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-07 08:00:00"}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a73d870a-6f1a-4f15-90cb-d7bd2188501a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:02:00"}
{"durationMs":1.09,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6a0bbe86-e030-45ea-a103-e1abc3b87238","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:02:48","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:03:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":21,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:03:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.34,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2ed8fbbb-45dc-4f4b-ae2b-a5b95245d920","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:03:07","userId":null}
{"durationMs":620.22,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/platform/auth/login","requestId":"b78a91ef-5ed7-44fb-9a0c-f65c30ebe461","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:03:08","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":58,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:03:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.8,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ecfc7bfa-f53e-4218-b2b5-69420621a4f1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:03:08","userId":null}
{"durationMs":67.21,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?limit=100","requestId":"c4e77d75-5a9c-4f17-8ae3-4b3e0e6fe0e7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:03:10","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/platform/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:03:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/login","navId":null,"to":"/platform/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:03:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"68bb2599-c259-4ff8-8460-bb3534cd9160","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:03:10","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":16,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:03:13","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.93,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a24483ad-b9bf-4ff6-b752-d89b3ea002cb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:03:13","userId":null}
{"durationMs":32.04,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?page=1&limit=20","requestId":"6bbf4630-eb86-4480-9209-12c691b45053","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 08:03:27","userId":null}
{"data":{"href":"/platform/schools","navId":"1788757402749-869541","text":"View All"},"durationMs":null,"event":"NAV_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Navigation click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:03:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","href":"/platform/schools","navId":"1788757402749-869541","text":"View All","to":"/platform/schools"},"durationMs":197,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:03:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","navId":"1788757402749-869541","to":"/platform/schools"},"durationMs":219,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:03:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.55,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"20c4c6a4-e099-4b42-b8bb-eda45238839b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:03:28","userId":null}
{"durationMs":15.58,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/plans","requestId":"4396ba89-aa13-45e4-b232-0baaa9d04b73","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 08:03:40","userId":null}
{"durationMs":28.91,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/usage","requestId":"73e1b922-2894-434c-b3f9-51d9830d407b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:03:40","userId":null}
{"durationMs":61.53,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/features","requestId":"1ca3bf99-4b1d-42b2-a8f0-33a73e9df9a0","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 08:03:40","userId":null}
{"durationMs":51.7,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/details","requestId":"3b0bccbd-5aec-4dd1-b137-17a9fe58fdf8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:03:40","userId":null}
{"data":{"id":null,"label":"View","name":null,"type":null},"durationMs":9,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:03:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","href":null,"navId":null,"text":null,"to":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:03:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","navId":null,"to":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:03:41","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.53,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8e79218c-9ee5-44c0-9b47-e8f71c8b0f58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:03:41","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:04:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":51,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:04:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":52,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:04:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.37,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"253a28d4-9064-41b9-bc32-32067bd10c57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:04:03","userId":null}
{"durationMs":43.43,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?page=1&limit=20","requestId":"57380fcc-0623-4da7-955a-d411c8de5a64","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 08:04:04","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":7,"event":"UI_CLICK","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:04:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","href":null,"navId":null,"text":null,"to":"/platform/schools"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:04:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","navId":null,"to":"/platform/schools"},"durationMs":null,"event":"NAV_RENDER","ip":"102.0.11.44","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 08:04:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.46,"ip":"102.0.11.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6517815-fda1-4a0b-ab00-3fdaea8cdcbd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:04:05","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 08:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:05:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cc0e5da3-7b45-449b-9416-64156aeedebb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:09:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:10:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 08:10:01"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 08:10:01"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 08:10:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 08:10:01","totalConnections":1}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a16273df-34b3-4772-86b1-68f3f8c29c82","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 08:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 08:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 08:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 08:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:15:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"da096fb0-c361-44c3-8a38-3751b5b3c137","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 08:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 08:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 08:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 08:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:20:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ac95d69-76ca-4259-b1ab-2738c427353e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 08:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 08:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 08:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 08:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:25:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ab70c58b-982f-497e-93e1-a2676a9ce8f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 08:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 08:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 08:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 08:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:30:00"}
{"durationMs":1.42,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17fb7441-cde4-42b5-9935-83e80b1007af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 08:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 08:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 08:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 08:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:35:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"844260ab-2593-43a9-b7fa-e4c7fcb732a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 08:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 08:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 08:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 08:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:40:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"18b6b97e-708b-492d-83d7-2cf2213b6a8d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 08:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 08:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 08:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 08:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:45:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6bdf43a1-75f2-4adb-b1a2-d9972757a3fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 08:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 08:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 08:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 08:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:50:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5a62c88-7276-4a81-90a7-28c3047d1d61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 08:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 08:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 08:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 08:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:55:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"29c185f1-2bf6-4feb-9c12-0f40f41332e3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 08:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 08:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Weekly job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Starting weekly fee clearance email job","service":"cbc-sms","timestamp":"2026-09-07 09:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 09:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 09:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] No current term found for school Nairobi Comprehensive school","service":"cbc-sms","timestamp":"2026-09-07 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Found 0 cleared students for kisii Highschool","service":"cbc-sms","timestamp":"2026-09-07 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] No current term found for school Eland School","service":"cbc-sms","timestamp":"2026-09-07 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Found 0 cleared students for Bungoma","service":"cbc-sms","timestamp":"2026-09-07 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Found 0 cleared students for CBC Model Primary School","service":"cbc-sms","timestamp":"2026-09-07 09:00:00"}
{"level":"info","message":"[FeeClearanceEmail] Job completed in 0.09s. Processed 0 students, sent 0 emails","service":"cbc-sms","timestamp":"2026-09-07 09:00:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"894bea8c-28b9-4508-8b20-48171bcd2b8e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 09:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 09:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 09:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:05:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b02c5e1e-abe5-4986-8e9c-5598a7a3bd61","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 09:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 09:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 09:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:10:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ed400e8-eda6-4b60-bb09-233d30c5d933","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 09:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 09:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 09:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:15:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d371f97b-4cb2-442a-913b-5f4ddf4295ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 09:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 09:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 09:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:20:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c958e486-9a64-4fe8-850a-2e23ead888e1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 09:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 09:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 09:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:25:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6f28c196-ad40-4820-a5e6-0bb3c1724374","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 09:30:00"}
{"level":"info","message":"[CRON] Attendance alert started","service":"cbc-sms","timestamp":"2026-09-07 09:30:00"}
{"level":"error","message":"[CRON] Attendance alert failed: Cannot read properties of undefined (reading 'findMany')","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findMany')\n    at cron.schedule.timezone [as _execution] (/home/aereuxky/cbcsms-backend/src/jobs/attendance-alert.job.js:19:53)\n    at Task.execute (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/task.js:17:25)\n    at ScheduledTask.now (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:38:33)\n    at Scheduler.<anonymous> (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:25:18)\n    at Scheduler.emit (node:events:519:28)\n    at Timeout.matchTime [as _onTimeout] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduler.js:30:26)\n    at listOnTimeout (node:internal/timers:585:17)\n    at process.processTimers (node:internal/timers:521:7)","timestamp":"2026-09-07 09:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 09:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 09:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:30:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"426093aa-8363-4008-ad60-56c28fcd6d24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 09:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 09:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 09:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:35:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b328fddd-82e9-4ac9-8c72-f983e25bcdfc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:38:00"}
{"durationMs":1.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bc643393-d15a-4e85-9d74-00dfd4a8a113","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:38:38","userId":null}
{"data":{"from":"/platform/schools","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:38:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:38:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"02f54928-4702-4613-8112-a64940fd9212","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:38:38","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 09:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 09:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 09:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:40:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0a5b232e-7109-4816-b71d-d0640494173d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:40:01","userId":null}
{"durationMs":0.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11e3e610-6f41-4e47-8a67-68bfefe87fb0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:40:35","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":37,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:40:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4229611b-4664-449e-b184-56abcad1c5c2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:40:47","userId":null}
{"durationMs":584.11,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/platform/auth/login","requestId":"c699c950-954a-4a34-bbba-f53c0e7c4d3d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:40:48","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":43,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:40:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ae49a1cd-6718-42bd-8c6d-87894eebc782","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:40:48","userId":null}
{"durationMs":57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?limit=100","requestId":"1f73f7d9-adac-432c-90b9-1a8c0f72cd84","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:40:49","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/platform/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:40:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/login","navId":null,"to":"/platform/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:40:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"12c28ff8-66c4-4cf4-aeca-0e58e93b09f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:40:50","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":94,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:40:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"29bcb241-b45f-447d-9b0e-1adab12f5f2e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:40:58","userId":null}
{"durationMs":26.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?page=1&limit=20","requestId":"ba4e4d49-f75f-4161-997b-48b10d43b9fa","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:40:59","userId":null}
{"data":{"href":"/platform/schools","navId":"1788763254355-538281","text":"Schools (Tenants)"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:40:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","href":"/platform/schools","navId":"1788763254355-538281","text":"Schools (Tenants)","to":"/platform/schools"},"durationMs":208,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:40:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","navId":"1788763254355-538281","to":"/platform/schools"},"durationMs":228,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:40:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1a1d7906-fcae-42f4-b9af-5ead21d4def0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:40:59","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:41:00"}
{"durationMs":10.74,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/plans","requestId":"e237e28f-dd73-4d4e-a1fc-dec02c718ecb","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:41:16","userId":null}
{"durationMs":45.34,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/usage","requestId":"8179139f-0a18-4f22-843d-1212a3c3ac23","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:16","userId":null}
{"durationMs":54.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/details","requestId":"72b20354-8d02-4940-9f36-39e702386782","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:16","userId":null}
{"durationMs":52.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/features","requestId":"88a71ca9-cc01-485d-b7f6-0eaf0227c2eb","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:41:16","userId":null}
{"data":{"id":null,"label":"View","name":null,"type":null},"durationMs":9,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:41:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","href":null,"navId":null,"text":null,"to":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:41:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","navId":null,"to":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:41:17","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ac21155c-eca8-4a80-ba75-cb523e3b9e92","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:17","userId":null}
{"data":{"id":null,"label":"Impersonate","name":null,"type":null},"durationMs":192,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:41:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.16,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a31b3e70-79e8-43b1-9340-27c01cf382fb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:20","userId":null}
{"durationMs":469.53,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/impersonate","requestId":"77f58d4b-7fff-4970-a539-1c978b66a8bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:21","userId":null}
{"data":{"id":null,"label":"Start Impersonation","name":null,"type":null},"durationMs":10,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:41:22","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c7408b99-6631-4f16-92a6-4e7aae4c9cea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:22","userId":null}
{"durationMs":1.11,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0862a852-8b8f-4278-be9d-43d6f4678f7c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:22","userId":null}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:41:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/dashboard","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:41:23","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6aee11c7-14d3-424a-a929-c94329b7ce0b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:23","userId":null}
{"durationMs":1.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aa6b53d1-1083-4a94-aa8c-ed941be764e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:37","userId":null}
{"data":{"id":null,"label":"View Portal","name":null,"type":null},"durationMs":59,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:41:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"44204a06-5d0a-4350-8eee-867c6e84d5c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:38","userId":null}
{"durationMs":63.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"b8b2bdda-d52e-4820-86a1-316d901c6197","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":100.08,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1182526e-1da1-4c8a-9958-7996eb779795","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":184.11,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"bb03a1af-9594-44a7-8d86-e34df1c203cc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":178.72,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fa7410b6-0e95-4a91-901e-e37d3c445362","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":183.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"51e369ec-47c5-46b0-8839-31eefea9dac9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":170.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"15ea629c-3f8a-42f6-ae45-930b13ae7b6e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":96.33,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"2a74e733-29d9-4b0a-8c5c-294de46e49ce","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Go Back","name":null,"type":null},"durationMs":7,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/schools/eland-school","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/schools/eland-school","href":null,"navId":null,"text":null,"to":"/"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/schools/eland-school","navId":null,"to":"/"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":333.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":384.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1ca73c83-d5bb-43bc-911f-ba23786445c8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":145.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"0acc00fc-1e2f-4d66-9553-fa350259c362","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":152.3,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"f2b41ed1-2bf0-4f90-a230-8194788f9190","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":156.37,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"fe3d7165-38d0-40b4-bfc5-f6c826e791ca","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":196.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"253bf996-f66b-4bdf-8ed4-82ff63f3df4c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":161.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"dff09941-87ad-4d2b-9c4e-41f6e0882db7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":576.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":580.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":710.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":728,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":761,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":798.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":800,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":801.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":839.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":844.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1ac0ab28-fa4a-4dd1-a8b3-0ab784d63ad0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":104,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":7.19,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"341bd799-f620-4b82-821b-752d442fd025","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:46","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":46,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 09:41:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.67,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e485fc8b-772f-4cda-ba85-cd3cdd413a00","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:41:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/dashboard","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:41:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"32ed70f9-022f-42f5-8579-ef4ec7388065","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:41:53","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:42:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":15,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"57a41a8e-49e5-46c5-9c02-534896a44f4f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:06","userId":null}
{"durationMs":602.72,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/platform/auth/login","requestId":"2749c229-41ba-4537-a45a-62ac325b4aef","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:07","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":19,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e2e84b63-afa5-4bbf-bcab-73eeb263854c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:07","userId":null}
{"durationMs":24.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?limit=100","requestId":"60e4d8e3-4afc-4e02-9682-58fb47ac5289","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:42:07","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/platform/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/login","navId":null,"to":"/platform/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.99,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a7329e3-50f1-42de-8552-6884c2e1e44e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:08","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":25,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":72,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"37fa0304-7186-42ad-aa79-16329172d9de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:10","userId":null}
{"durationMs":35.11,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?page=1&limit=20","requestId":"a8e0c148-39f6-48cc-b1bc-0d952b9633c0","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:42:15","userId":null}
{"data":{"href":"/platform/schools","navId":"1788763330336-273634","text":"Schools (Tenants)"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","href":"/platform/schools","navId":"1788763330336-273634","text":"Schools (Tenants)","to":"/platform/schools"},"durationMs":163,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","navId":"1788763330336-273634","to":"/platform/schools"},"durationMs":185,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:15","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7f514f41-da57-4edb-b383-ef8117002804","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:15","userId":null}
{"durationMs":50.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?page=1&limit=20","requestId":"abe6f2e5-e4bb-4213-9d98-0b2b013a43d6","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:42:38","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":5,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","href":null,"navId":null,"text":null,"to":"/platform/schools"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","navId":null,"to":"/platform/schools"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6e613058-caa8-4a31-af0e-4d78a093d510","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:39","userId":null}
{"durationMs":8.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/plans","requestId":"96fdd768-1439-4a11-8bb9-704ed5cfa65c","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:42:44","userId":null}
{"durationMs":39.35,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/usage","requestId":"29ddef97-6dab-47cf-917f-95ecc2ded138","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:44","userId":null}
{"durationMs":58.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/details","requestId":"c2651511-fc39-46b8-bd26-5e44a9ae511a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:44","userId":null}
{"durationMs":17.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/features","requestId":"c5943bca-1438-4c97-8721-4c61bca0f7d7","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:42:44","userId":null}
{"data":{"id":null,"label":"View","name":null,"type":null},"durationMs":8,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","href":null,"navId":null,"text":null,"to":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","navId":null,"to":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:45","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"58a168d9-2dd1-43a0-9372-d5774062f517","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:45","userId":null}
{"data":{"id":null,"label":"Change Plan","name":null,"type":null},"durationMs":114,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:49","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eb439209-94ec-4314-9b04-91e87b5aa53c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:49","userId":null}
{"durationMs":19.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f","requestId":"85d5c555-4b9e-4f8b-a7e3-d678f76d34c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:51","userId":null}
{"durationMs":31.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/details","requestId":"c783fdc6-d293-41b7-85db-9576fef1b6e5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:51","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":9,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f91063c0-5f48-4e75-b1cd-4ede75d95cdb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:54","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":49,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7ad4f484-0730-41f2-a39a-6d20095b752c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:55","userId":null}
{"durationMs":16.55,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?limit=200","requestId":"2219ba3a-f1c3-4ae5-9ae4-d2092685d0f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:58","userId":null}
{"data":{"href":"/platform/school-portals","navId":"1788763373436-264224","text":"School Portals"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","href":"/platform/school-portals","navId":"1788763373436-264224","text":"School Portals","to":"/platform/school-portals"},"durationMs":528,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/school-portals","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","navId":"1788763373436-264224","to":"/platform/school-portals"},"durationMs":528,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/platform/school-portals","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","navId":"1788763373436-264224","to":"/platform/school-portals"},"durationMs":552,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/school-portals","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:42:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7e14bc46-18d0-4aaf-940d-7a53ab0671d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:42:59","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:43:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":56,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/school-portals","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:43:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bd1432de-02df-41c7-bfc8-41f4b0738367","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:43:04","userId":null}
{"level":"info","message":"[Payment Config] GET request received from user:","service":"cbc-sms","timestamp":"2026-09-07 09:43:05"}
{"durationMs":72.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/payment-config","requestId":"3da9a9e3-5609-4215-9733-6cab9a985908","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:43:05","userId":null}
{"data":{"href":"/platform/payment-integration","navId":"1788763380357-703195","text":"Payment Integration"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/platform/school-portals","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:43:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/school-portals","href":"/platform/payment-integration","navId":"1788763380357-703195","text":"Payment Integration","to":"/platform/payment-integration"},"durationMs":415,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/payment-integration","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:43:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/school-portals","navId":"1788763380357-703195","to":"/platform/payment-integration"},"durationMs":435,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/payment-integration","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:43:05","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.98,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"99eca9a2-c4dc-47b9-b81b-832a5cbd4256","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:43:05","userId":null}
{"level":"info","message":"[Payment Config] GET mpesa-transactions requested by user:","service":"cbc-sms","timestamp":"2026-09-07 09:43:10"}
{"durationMs":137.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/payment-config/mpesa-transactions","requestId":"610c150c-8087-499b-9f61-64dbe70ceea1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:43:11","userId":null}
{"data":{"id":null,"label":"Callbacks & Failed Payments","name":null,"type":null},"durationMs":45,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/payment-integration","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:43:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.85,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c609bb32-d9b7-4b16-afe1-742ad88f83f3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:43:11","userId":null}
{"data":{"id":null,"label":"Production Config","name":null,"type":null},"durationMs":62,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/payment-integration","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:43:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.85,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"356a6a76-0a95-41fe-abbd-d5f2fade21b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:43:20","userId":null}
{"data":{"from":"/platform/payment-integration","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:43:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/payment-integration","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:43:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.97,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8c3e8e03-cc71-4631-87ce-b2a6b9c0ccd2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:43:27","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":25,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:43:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d452ad0d-9cd4-474c-baf2-7a8cd55ac704","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:43:53","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":30,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:43:59","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5dae0039-36bb-4e2d-bb60-d82398d2dcba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:43:59","userId":null}
{"body":{"identifier":"guardian ","password":"[REDACTED]"},"error":"Invalid username or password","ip":"41.220.233.110","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Invalid username or password\n    at Object.login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:426:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:34:20)","timestamp":"2026-09-07 09:43:59","url":"/api/v1/auth/login"}
{"durationMs":1194.53,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"020d7656-a40b-43f5-b8d3-bc22b790819d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 09:43:59","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:44:00"}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":1497.2,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:44:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eee338c4-5a28-4b00-8e36-3919ddb62085","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:00","userId":null}
{"durationMs":830.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"b245f6b8-7f08-4110-a782-db80ba39406e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:06","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":24,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:44:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.7,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bac0aaec-d43d-4f27-b983-910d62284484","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:06","userId":null}
{"durationMs":44.65,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"113f0a11-b5d8-4907-b65a-2f81844094c5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":46.57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"264572d1-cd1a-4ac2-a265-f0f783d0c4ac","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:44:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":37.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"91cf1dcc-0b1e-42f2-a4f0-ae0c05f043f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:44:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":41.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"16ae9824-ab16-49d4-876b-91808164232d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:44:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":53.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"b1bd819e-8bf2-4634-9a1b-6c9bd60960dc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":143.52,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"ae7d6ceb-73e1-4527-a818-def9c65595ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":198.64,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"5e3d083e-567c-4a1b-845b-ede84679185c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:44:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":226.34,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"d2aba566-f960-4f5e-8376-7e9fa99b22d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":242.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"acdddba0-de10-481d-acae-da7d6d355aba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1146.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":367.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":349.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":481.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":497.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":13.35,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6955e9a2-82f7-4bc9-a009-2f0ac67e8fea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":295.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"80d70c4c-6457-4ede-8233-334d4f0c00d9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:44:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":988.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"f1585919-c685-4f7c-9ac6-0a9419b4d10c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:44:08","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":36.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"664f8484-ba15-4a51-aede-dcfd9ef68ed2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:44:08","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1057.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1078.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1081.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1084.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1394.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":1279.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":1675.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":397.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"724e1fa6-ceb3-47e9-addb-43829e2c6cac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:09","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":12,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.72,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6bcbea9-34b9-42a6-96f6-bad1e2f72882","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:12","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":43,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":6.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c4b10cbb-3649-4350-8fb5-ec0d9a541e96","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:28","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":403.41,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"c515ccf7-93c2-4a14-887b-d58d8789487c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:44:29","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1788763464268-804260","text":"Fee PaymentsDue"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1788763464268-804260","text":"Fee PaymentsDue","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":122,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","navId":"1788763464268-804260","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":167,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.94,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"968dea4b-c868-4e1a-9f96-d5c91cd626b4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:30","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":37.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"363ca28e-db18-4bcc-8a4d-eb64cd739ff5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:44:30","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":829.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":583.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":8.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a7bbbdec-cb38-4fc9-ac95-44a0d6d60b40","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:30","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":"Pay KES 21,464.00","name":null,"type":null},"durationMs":65,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.04,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"92010ffd-036c-44dd-ac15-0b796ae32857","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:34","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"amount":1,"feeItemIds":["b13011dd-a462-405a-86e5-d388cd8b466f"],"guardianId":"1d8921a4-3c48-4035-9b8d-6098367e43c6","invoiceBalance":21464,"invoiceId":"35b80bc4-44ea-43bb-b95d-b18a69cbc0ed","level":"info","message":"[Guardian Payment] Initiating M-Pesa payment","service":"cbc-sms","studentId":"cmp8gtpz200fy8bcnxg8120p8","timestamp":"2026-09-07 09:44:50"}
{"bankAccount":"***6152","bankName":"KCB Bank","bankPaybill":"522522","level":"info","message":"[Guardian Payment] Bank C2B direct settlement configured","service":"cbc-sms","timestamp":"2026-09-07 09:44:50"}
{"data":{"id":null,"label":"Pay KES 1 via M-Pesa STK","name":null,"type":null},"durationMs":20,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:51","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.52,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fd70bc3f-9b3f-429b-95e0-d74477bb8fbe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"checkoutRequestId":"ws_CO_07092026094448852706576238","guardianId":"1d8921a4-3c48-4035-9b8d-6098367e43c6","level":"info","message":"[Guardian Payment] STK Push initiated successfully","requestId":"aed1be4b-4b86-47d8-a67f-42284edf101f","service":"cbc-sms","timestamp":"2026-09-07 09:44:52"}
{"durationMs":2323.85,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/pay-mpesa","requestId":"4a0f8a95-2d64-405f-8d57-6241d7b61f06","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/pay-mpesa"},"durationMs":2576.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f959fd43-2d64-4846-a801-7bfb1f2e05b2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:53","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":53.83,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026094448852706576238","requestId":"4085fee9-58c4-4292-a912-fcffec233680","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026094448852706576238"},"durationMs":315.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.85,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"757059b8-53c2-46e4-bd73-d22bd588f5f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":44.81,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026094448852706576238","requestId":"2df7d637-6a8e-4c8e-a885-92574a0ab214","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:44:57","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026094448852706576238"},"durationMs":326.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:44:58","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"550fb1e1-c486-43f0-8138-b21b739c7c01","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:44:58","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":45.43,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026094448852706576238","requestId":"49be804c-b2f2-48a0-b6c7-e32c28bd78bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:44:59","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026094448852706576238"},"durationMs":323.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:45:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":12.65,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f14b67b0-1b27-4dc7-8c52-db6767960408","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:45:00","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 09:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 09:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 09:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:45:00"}
{"durationMs":44.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026094448852706576238","requestId":"e57752bf-10e4-43e6-bbfa-fbd1aa64f579","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:45:01","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8533aa0c-c079-4f06-a014-5c14f69aa60c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:45:01","userId":null}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026094448852706576238"},"durationMs":306.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:45:02","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":4.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"536b9cb7-a564-462a-aedb-c60f049796b7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:45:02","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":44.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026094448852706576238","requestId":"3290ef09-b6c8-4f1e-802e-e49016ebcd14","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:45:03","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":346.75,"ip":"196.201.212.69","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/mpesa/callback","requestId":"09910f39-9a0c-4298-b218-2b742f96f192","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:45:03","userId":null}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026094448852706576238"},"durationMs":301.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:45:04","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":6.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a1a78e68-76b1-4a29-b8fd-fe5fb4804653","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:45:04","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":51.88,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026094448852706576238","requestId":"fbaa4696-1c21-4b8f-8f9f-1fbc94ea7a47","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:45:05","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026094448852706576238"},"durationMs":319.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:45:06","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"54ba0ba7-1476-4e3c-8c22-d4ff8ff9021f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:45:06","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":85.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"e2eeea6b-d555-4ff8-97d4-e31489d40f78","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:45:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":342.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:45:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.41,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"489b9b25-5660-4930-83f9-71b159eda734","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:45:08","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":30.54,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"89588560-35cb-4b1b-93d2-6c61082871f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:45:08","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":34.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cf5cb8d6-56b0-4e50-a5a9-a384b0ee408d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 09:45:08","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":291.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:45:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":298.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 09:45:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7a22b717-d016-452f-8e2e-206d0bd0d40f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:45:09","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 09:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 09:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 09:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:50:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"457b4db7-8ac4-4a09-9145-f74a794fe053","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 09:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 09:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 09:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 09:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:55:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0381d3f2-f13f-4a98-a0a0-83bcd6377531","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:55:01","userId":null}
{"durationMs":2.15,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41fbc6d3-0428-4d93-b50e-d58686bd37df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:55:34","userId":null}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 09:55:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"848009d5-459a-4f27-86fc-c0e15a939fa6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 09:55:40","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 09:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 10:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 10:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 10:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 10:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:00:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bab5512-7254-4db2-bf8c-ad83c108f077","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:00:02","userId":null}
{"data":{"from":"/dashboard","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 10:00:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3802ce67-dd44-438a-bc16-2ceab98b4fd4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:00:57","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 10:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 10:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 10:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 10:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:05:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e0f1f8b-cfde-49ed-baad-36dcebefe494","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 10:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 10:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 10:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 10:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:10:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"45f71def-be31-4c46-90e0-b76bcb626f99","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 10:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 10:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 10:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 10:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:15:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"56301cbf-86ce-44a9-bc5b-29f4b764b509","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 10:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 10:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 10:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 10:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:20:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ae58231-b6d6-4b70-b272-681035b80fbb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 10:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 10:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 10:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 10:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:25:00"}
{"durationMs":1.44,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ca2c840-ed23-415e-b396-021f137f3b09","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 10:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 10:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 10:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 10:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:30:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3ff3b5bf-ea7f-4f64-a1be-bd9fd58de26a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 10:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 10:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 10:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 10:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:35:00"}
{"durationMs":1.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"17ff62e5-1ecb-4baa-9bd9-de3651ff607e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 10:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 10:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 10:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 10:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:40:00"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3bc0495-8d02-4ebd-b30a-f081e516e98f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 10:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 10:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 10:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 10:45:00","totalConnections":1}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a9c8914c-8448-4d09-9806-042f31217ad0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 10:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 10:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 10:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 10:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:50:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8d4aed5-f423-48e4-bee9-bcd11967fbe1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 10:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 10:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 10:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 10:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:55:00"}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e42fc1f2-d2bd-4a1f-b7ea-444a503f5676","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 10:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 10:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 11:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 11:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 11:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 11:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:00:00"}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1cd34ce6-d38c-4c0a-ac33-6552879a1e9f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 11:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 11:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 11:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 11:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:05:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b87b6cd-5dcb-4365-9957-10684bde2844","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 11:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 11:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 11:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 11:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:10:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c4705cf5-c1f4-45cf-9408-b5a8a9ccb40f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 11:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 11:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 11:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 11:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:15:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8591e1ea-6011-43b2-b564-9ea49c8996c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 11:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 11:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 11:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 11:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:20:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"94f20167-e744-41e1-8748-b7ce66b86a87","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:24:00"}
{"durationMs":1.2,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0b7c3186-640c-4cd0-b68f-0532e548ae08","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:09","userId":null}
{"durationMs":2.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"172238ea-77ce-47f2-b707-c21d49daaa93","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 11:24:10","userId":null}
{"durationMs":1.39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"5f3ffc90-4681-422f-91f7-2cddacad8907","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 11:24:10","userId":null}
{"durationMs":3.29,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"cacf2524-b749-4783-9548-6016989e2158","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 11:24:10","userId":null}
{"durationMs":2.39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"01b5389f-ee1e-4594-8a89-e0cce647abe3","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 11:24:10","userId":null}
{"durationMs":1.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"1457b6d6-706a-409b-96b3-8074bffaed7e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 11:24:10","userId":null}
{"durationMs":1.53,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"a718be0a-9f84-47b3-acdf-7891a11e5944","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 11:24:10","userId":null}
{"durationMs":156.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"6892bd13-af8e-4a8b-a814-2aa0b1849c0f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:10","userId":null}
{"durationMs":3.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"b4fad80f-6cba-4578-87af-a1cfa9a85d65","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 11:24:11","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":283.9,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":289.7,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":656.9,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":659.2,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/dashboard"},"durationMs":391.4,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/school-info"},"durationMs":393.1,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:11","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":17.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bddacc40-ff14-4964-9cc1-89bbc54d3677","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":119.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"52ef1da2-596d-4fbf-ad9c-c8b31523e2d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":174.39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"f26b6af5-a357-47a7-8846-de4e32f67c89","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:24:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":190.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4456fa36-2d49-48c3-8b2a-25371cf27e5e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:24:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":185.23,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"533cc6bc-bf76-4a6e-a117-2f6ed400e973","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:24:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":185.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"68443a38-3795-4e16-98e9-bbf4d457ad09","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:24:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":46.94,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"4e35bc58-9a70-4ee1-ad9a-62e5a3ad382a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:11","userId":null}
{"durationMs":254.55,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"392a5824-f270-476f-8551-c5343e84f289","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":46.3,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"689ded70-43f2-4b7a-a76d-365c1422b7c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:24:11","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":401,"url":"/guardian/notifications"},"durationMs":279.9,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":440.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":446.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":462.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":464.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":465.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":542.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":301.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:12","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":5.85,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b9bdf9f2-aeb8-425c-92b0-2bfdb0872e68","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:12","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:24:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/guardian","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:24:16","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f700026a-d9b2-4787-8915-b71e1aed9df8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:16","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":18,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:24:26","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.18,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1fbdb85b-fd47-465a-a9ec-0880bf074e3e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:26","userId":null}
{"durationMs":794.52,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"8c682de8-04b5-4f76-a475-5806ffdd011c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:27","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":24,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:24:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":0.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ac246231-c69b-4a6f-932e-51a9269b1f07","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:27","userId":null}
{"durationMs":65.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"de018fb1-f219-48d6-9e05-93360f7cb9aa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":115.39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"8c9a5c38-b0c1-4244-86ac-29507b43eeaa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:24:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":149.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"552828c8-5098-4255-b7fc-df83b0b5c3df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:24:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":52.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a313cd8f-f833-437d-9ab4-d77ef9191065","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:24:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":606.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"8cee3b1d-6e5a-484d-b913-570f803390be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":250.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"22f366a2-5d7d-40f0-8522-f90419d3e116","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":666,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"7db4b269-3585-4e7d-8b02-b3cd0d7bb616","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1052.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":323.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":514,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":551.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":566.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":107.54,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6fafe8b-25a6-4b5c-acfe-0fb70e6aede9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":210.43,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"9cf8913e-568f-49a2-ae0e-bb133e1c701e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":721.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"46948818-1a97-4927-bb32-8d945fd62580","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":256.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"9f34dea9-8605-4c8e-8c44-9b1747469cd2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":201.41,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"2eac1042-07a3-4814-a1a3-8bb97b4688f9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":566.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"fbec6d22-e6de-4670-95a0-439c2b0cd1c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":727.6,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"674be712-c620-48d4-b6c3-3a02147526be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":189.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"5363f3a1-8ac7-48e4-a27b-36d961151ba5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":361.3,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"7f6054a5-cf49-4be4-83a7-fcf058b81ca6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":414.57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"10365115-ce11-4ce4-a747-708c66bc7426","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":640.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"30a1ff1e-0eae-474d-93ae-9f4572fad4dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":393.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"9fa83c1c-858a-4609-8551-557af45fe8dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1115.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1136.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1301.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1112.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1241.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1138.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1270.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1388.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1390.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1274.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":1276.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1394.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1396,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1397.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:24:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"20f0dca4-b1ef-4ee7-ace5-49e1937e5947","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:24:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 11:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 11:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 11:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 11:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:25:00"}
{"durationMs":1.4,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72bbe142-ab14-4171-a735-b94e581bed54","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:02","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":98,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:25","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.77,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c992ad89-546f-4918-96c9-1a30c08b9205","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":29,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:27","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.99,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5e829232-cfab-490f-a6bb-f338066c66a9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4ed69e21-273d-4670-90ae-1a4688067ede","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:25:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"24d85846-8697-4175-8793-6ca1cbbfd108","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:25:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"d632e0bb-64ca-469c-9224-7c979db6c0b9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":334.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":563,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:29","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.04,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5a657194-f564-4239-b684-d72cf636abc4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":378.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Teacher Portal","name":null,"type":null},"durationMs":140,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.11,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cf1a3b53-2336-49fa-b98a-1c5a000733cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c084dca5-355b-4de3-9894-064f66585936","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:30","userId":null}
{"durationMs":29.88,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"21b24ead-0bd5-40f5-b249-089cb9e51ffb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:25:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":230.19,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms/current","requestId":"cca67ae2-92ab-4203-a6a6-d40afe54c171","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":470.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e520dcc8-b0b9-48a9-beb1-d5e3df7f67ea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:25:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":469.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"ad162272-717d-43bd-baaf-07e93a0d14a6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":434.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"f88dac69-cb25-4d47-ab09-3b7faef226a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:25:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":387,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1028fbc7-8c77-4841-a9db-4fc70dcb6a16","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":469.45,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1d058b24-5e7c-4e8c-bfd2-6bfadc5c31a8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:25:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":253.35,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"4ae254b7-4cf7-41ff-acba-16601437e22f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":528.37,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"4b483e89-d0aa-49e3-88d0-93eafca5ab69","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"10ded9c3-865c-4707-b305-18fc87fcf5e1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"f6a1a3dc-af44-4654-aa6d-527eb1950b1f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/terms/current"},"durationMs":1319.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-schedule"},"durationMs":1507.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":1519.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1522.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1524.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1526.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/overview"},"durationMs":1601.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/overview"},"durationMs":384.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fd285566-e243-417e-8f71-0af50750c5bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/clocking/status"},"durationMs":347.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:34","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.83,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"33327faf-e9de-41cc-aef6-a4b913818d60","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":60,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 11:25:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a3e7d6ee-d260-4aee-9beb-84478971850b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:25:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/dashboard","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:25:47","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.51,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"60716aa4-57f5-4047-9d9e-01efeb5af4df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:25:47","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:26:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":18,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:26:03","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4f0da80f-dbce-4e48-aa4c-a23171fc25af","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:26:03","userId":null}
{"durationMs":571.46,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/platform/auth/login","requestId":"93bb7391-7ed4-470d-965a-a5aad1c8cb57","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:26:07","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":22,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:26:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.31,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"824e0077-6f28-4cd1-a32a-943516004844","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:26:07","userId":null}
{"durationMs":38.86,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?limit=100","requestId":"dd72f412-3707-4460-8ae0-364e947daf1b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:26:07","userId":null}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/platform/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:26:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/login","navId":null,"to":"/platform/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:26:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"36d5aa07-accb-4f57-b27a-63cca00ab3f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:26:08","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":20,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:26:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.15,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d334b8e8-780e-432c-acad-5f09e44f6e30","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:26:10","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":62,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:26:30","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cd8f7b0f-9105-4bbf-bcce-695e63a18fdc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:26:30","userId":null}
{"durationMs":39.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants?page=1&limit=20","requestId":"3091acb3-5c8c-4248-839f-e4f303fd5a1e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:26:31","userId":null}
{"data":{"href":"/platform/schools","navId":"1788769586927-493616","text":"Schools (Tenants)"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/platform/dashboard","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:26:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","href":"/platform/schools","navId":"1788769586927-493616","text":"Schools (Tenants)","to":"/platform/schools"},"durationMs":192,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:26:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/dashboard","navId":"1788769586927-493616","to":"/platform/schools"},"durationMs":219,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:26:32","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fb73d5fb-8dac-4b7d-b729-a0529ac454b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:26:32","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:27:00"}
{"durationMs":56.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/usage","requestId":"2d1c67de-71f9-4f19-8761-3bd7b3a65ef4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:27:28","userId":null}
{"durationMs":41.43,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/plans","requestId":"fa74bd97-e9ec-44f4-b45c-55036b70e203","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:27:28","userId":null}
{"durationMs":67.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/features","requestId":"1cf6cccf-d42d-4460-83ad-07f1815d0d85","schoolId":null,"service":"cbc-sms","status":304,"timestamp":"2026-09-07 11:27:28","userId":null}
{"durationMs":86.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/platform/tenants/4b511e79-1032-4356-b941-9b218b56515f/details","requestId":"d9316485-57eb-41f9-aa94-d657d6a47593","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:27:28","userId":null}
{"data":{"from":"/platform/schools","href":null,"navId":null,"text":null,"to":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:27:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools","navId":null,"to":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/platform/schools/4b511e79-1032-4356-b941-9b218b56515f","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 11:27:28","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"40df23a5-eb8f-4e9e-a24f-1d40db583844","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:27:28","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 11:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 11:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 11:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 11:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:30:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12f39ead-1b98-430f-9e58-a9d0bfaac196","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 11:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 11:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 11:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 11:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:35:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"691cf7cc-8277-4a2d-8a4f-dd7608613f4c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 11:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 11:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 11:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 11:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:40:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c5c72ff2-2113-482d-8d05-17ecc4fee467","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 11:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 11:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 11:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 11:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:45:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"aff39ff1-ecb6-4498-a087-468f8dde31c0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 11:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 11:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 11:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 11:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:50:00"}
{"durationMs":0.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4d731106-7456-49a1-b8d5-88f256d263fd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:53:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 11:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 11:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 11:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 11:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:55:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"043c35c2-5efd-4348-9d93-bb356d43ab77","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 11:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 11:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 12:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 12:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 12:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 12:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:00:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c8e20107-5b0a-4519-a854-941630a29929","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 12:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 12:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 12:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 12:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:05:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"147fee6a-0a7d-4830-96e7-afa7f3e3e6d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:06:00"}
{"durationMs":1.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"866ec02c-ce73-4302-b4f7-e77a8ae87ff7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:06:38","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:07:00"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:07:06","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b8ba1efa-b4af-4647-85c6-6bb45b42c25c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:06","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":27,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:07:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.61,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"34e2dbd3-373b-44f9-8443-4a633e5ce93e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:08","userId":null}
{"durationMs":996.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"d8263726-5378-4ed4-ad34-a74f9f2a0eb8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:08","userId":null}
{"durationMs":64.57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"abe0696d-6320-43df-adfc-313ecb9ccf3a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":305.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"e97f85fd-364d-46d4-b546-d1ac442b8eff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":340.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"4761fe72-4424-455b-a15f-45b0ecd02cec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":344.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"f17fcdbe-1a67-4edd-bd49-fe95a7825fc2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":421.12,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"d2b7fd3b-fbb2-46d9-9d13-f48aa0b6c40d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1252.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":355,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.72,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d3812ec1-749e-4117-a25d-b20e3d754fe5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":129.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"0ffe8883-d1b6-4a52-a4ee-8850a8e2cbcd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":122.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"ef9bc97f-1a19-434b-ba37-33072610312c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":240.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9a98b587-6b74-4c95-a24f-20a1771ef083","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":237.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8da74525-5b5c-4d96-83a2-015161627005","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":174.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"e791e4fa-0d6a-4183-b6db-04ea0a9661c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":184.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"3d97be20-b29c-4ce2-84b4-c0550e81badf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":323.89,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"60fa2fb4-fc6e-4c13-8949-31c2bc34b870","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":343.58,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"57bd65ff-7eca-404d-905d-d2c8fd37c86f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":352.7,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"74a6356b-6650-42c5-a6e6-297f6c432bb7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":360.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"353cdabb-8586-43ad-8739-5d20ca1fb352","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":361.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"c8b93785-8155-4e2b-9763-3afa0087e577","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":368.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"4d869b47-deda-420d-a957-71ee3efc7801","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":358.77,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"084afc2b-4717-49ba-b48f-2c1c7da4c120","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":1430.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1433.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1435.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":1437,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":1437.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":1285,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1286.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1287.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1288.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":476.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":596.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":626,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":626.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":667.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":668.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":669.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":670.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:07:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.41,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7a18e2b3-d49d-480c-91c5-87bf9e38d5e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:07:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:08:00"}
{"data":{"href":"/dashboard/finance/mpesa","navId":"1788772082356-308626","text":"Payment Methods"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5080e191-e4c3-4c28-9f73-12776acbf40e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":98.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/details","requestId":"9227d908-7abd-4ac3-b2a4-91929e6dbc55","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":109.08,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"5f5e23ef-5e78-46e3-848c-38dd386f347d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":137.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/payment-settings","requestId":"319f86cf-d4cb-4c71-9d12-91abdf0890c7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Unknown column 'FeePaymentRequest.method' in 'where clause'","ip":"41.220.233.110","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.rawSelect (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:434:18)\n    at async FeePaymentRequest.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async FeePaymentRequest.count (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1306:20)\n    at async Promise.all (index 0)\n    at async FeePaymentRequest.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async exports.listTransactions (/home/aereuxky/cbcsms-backend/src/modules/mpesa/mpesa.service.js:586:48)\n    at async exports.listTransactions (/home/aereuxky/cbcsms-backend/src/modules/mpesa/mpesa.controller.js:52:50)","timestamp":"2026-09-07 12:08:08","url":"/api/v1/mpesa/transactions?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":132.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/mpesa/transactions?page=1&limit=20","requestId":"dbe70e4a-9abc-46d7-94f9-6d45478f8914","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-07 12:08:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/finance/mpesa","navId":"1788772082356-308626","text":"Payment Methods","to":"/dashboard/finance/mpesa"},"durationMs":1609,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788772082356-308626","to":"/dashboard/finance/mpesa"},"durationMs":1609,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788772082356-308626","to":"/dashboard/finance/mpesa"},"durationMs":1675,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/details"},"durationMs":348,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":394.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/payment-settings"},"durationMs":395.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/mpesa/transactions"},"durationMs":429.6,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cba9ff96-da5d-4829-8a3c-e2ac0c328fa6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Unknown column 'FeePaymentRequest.method' in 'where clause'","ip":"41.220.233.110","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.rawSelect (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:434:18)\n    at async FeePaymentRequest.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async FeePaymentRequest.count (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1306:20)\n    at async Promise.all (index 0)\n    at async FeePaymentRequest.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async exports.listTransactions (/home/aereuxky/cbcsms-backend/src/modules/mpesa/mpesa.service.js:586:48)\n    at async exports.listTransactions (/home/aereuxky/cbcsms-backend/src/modules/mpesa/mpesa.controller.js:52:50)","timestamp":"2026-09-07 12:08:09","url":"/api/v1/mpesa/transactions?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/mpesa/transactions?page=1&limit=20","requestId":"6fb831bd-e49d-4624-af8e-a4602ee1d7e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-07 12:08:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/mpesa/transactions"},"durationMs":310.4,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.88,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6eef6cb9-8218-4728-817d-9359db36fd06","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6a3f6435-be3a-4174-aa9b-7e819af6c979","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"32e3aaa8-dd83-4838-b228-933df90e57e4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":358.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":362.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.86,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f39f55ab-0ec9-4077-8f4b-c8f643822c02","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":11,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.88,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cff4a2a5-c35b-4e1c-89c2-a1b9a72dcee5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"M-Pesa Config","name":null,"type":null},"durationMs":43,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"84ceebd4-3fd9-40e8-a377-a40bdfbd0f4a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":162.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"PATCH","path":"/api/v1/school/mpesa-config","requestId":"06814f4a-660f-4c08-85fa-9f94a7354503","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"37ba8f9d-2882-41f6-b3d2-bccc5fc8decb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"PATCH","status":200,"url":"/school/mpesa-config"},"durationMs":502.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":314.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2eba039f-ae0d-4434-bde9-8cf403fedb5a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Bank Accounts","name":null,"type":null},"durationMs":30,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":31.11,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3fc6e353-2341-4e42-a41c-5fcdc7c84284","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":183.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"d3ee4907-3011-43b5-b043-5c08ce89cbb2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":289.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"5c5af976-7eda-4c7e-bdef-cb7a1d2f89df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":373.11,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"f355fa83-dd8e-4191-9279-c63d105c34ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":362.37,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"9410f243-244e-44ee-ba07-f9d6e72b48d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788772113291-254390","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/mpesa","href":"/dashboard","navId":"1788772113291-254390","text":"Dashboard","to":"/dashboard"},"durationMs":96,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/mpesa","navId":"1788772113291-254390","to":"/dashboard"},"durationMs":188,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":445.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":550.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":624.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":626.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"277c4037-e28e-434b-b182-5cb83bd033c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":0.99,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5cf0032c-03a3-497d-b5ae-8c621370229b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:38","userId":null}
{"data":{"from":"/platform/schools/32026ecc-b58b-42e7-ad3d-baca80305ffa","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:08:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"data":{"from":"/platform/schools/32026ecc-b58b-42e7-ad3d-baca80305ffa","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:08:39","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d5d1fe6a-689f-4d81-a4d8-55557ae9c18b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:39","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":21,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:08:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":2.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"058411b1-f25a-49d2-ad50-2aa2d6ebe70d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:50","userId":null}
{"durationMs":674.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"8b58a915-1dee-45f8-a3c2-76ebccae83ff","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:54","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":47,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:08:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":null}
{"durationMs":1.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"32e208c0-806b-41c1-84ba-4cf61b6dc0f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:54","userId":null}
{"durationMs":37.65,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"9edee0c5-dcbf-4d58-9164-a9cb5795f852","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":50,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"8b68a323-b891-48ac-b7aa-3219e2a6b2d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":59.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e82340d0-42bb-4d8f-9bc6-d8e1b7a6715a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":44.61,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5ecf95a2-4f24-4a85-a49f-e1c0be9cffba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":51.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"84f5b928-9504-4b4f-88db-e61be05f9bb9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":71.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"e43e9e53-b916-4976-837d-956726d42b4c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":37.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"b53729d8-fa71-4f53-a4bb-4a13d27649d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":92.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"7aa2e1fd-9b1e-436e-bbe5-0f78e2fa5f3c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":45.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"a0271429-1811-457c-b23e-1a62e367944c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":117.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"4f94b08a-d206-4e25-9579-95715f4d4d21","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":947,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":378.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":406.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":408.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":410.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:55","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dfddb737-a20d-449d-a81c-d7112b1c8ca8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":58.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"1682e5f2-8ba4-48dd-b0d9-9ef5441e0b2d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:55","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":54.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"e78628bc-75da-4401-9c25-4c90a1b4ea88","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:08:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":610,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":613,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":614.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":654,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":618.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":404.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":629.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":354.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:08:56","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":13.94,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c49501a8-95ae-4796-9a79-0b40647f8246","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:08:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:09:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":11,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":32,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:00","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":5.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9d023617-53e1-4f80-8822-11a336ed81d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:00","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":37,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:07","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":6.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3cf3f8ab-afee-414d-8096-ceb6e50bb20b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:07","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":37,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:08","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":8.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ca9d9bc0-0a53-4dad-8f76-e198b022dd8d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:08","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":110.31,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"85e811a0-6426-4e7c-9ce0-89725254d450","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:08","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":31.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/payment-methods","requestId":"ca6dd07b-53dc-41a1-924e-29c345c8a7f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:09","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1788772143846-79866","text":"Fee PaymentsDue"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","href":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","navId":"1788772143846-79866","text":"Fee PaymentsDue","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":205,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/guardian","navId":"1788772143846-79866","to":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":258,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":404,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:09","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dc6d780c-eece-4a87-a4b1-55ca7d0f998b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:09","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/payment-methods"},"durationMs":309.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:10","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.81,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a28a596a-803f-4853-9f7b-6b81658871cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:10","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":83.6,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"6566f924-dd9d-4cb2-8fb7-9ecde97d0b8b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":99.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"23bd83a8-4843-48b8-9e1f-c1f43e633ced","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":369.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":390.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3a06018e-026c-402d-b885-48cc351e9ea9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Pay KES 21,463.00","name":null,"type":null},"durationMs":100,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:20","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":8.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8ecb1cf8-3234-4918-918b-78d087cdaf92","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:20","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"amount":1,"feeItemIds":["b13011dd-a462-405a-86e5-d388cd8b466f"],"guardianId":"1d8921a4-3c48-4035-9b8d-6098367e43c6","invoiceBalance":21463,"invoiceId":"35b80bc4-44ea-43bb-b95d-b18a69cbc0ed","level":"info","message":"[Guardian Payment] Initiating M-Pesa payment","service":"cbc-sms","studentId":"cmp8gtpz200fy8bcnxg8120p8","timestamp":"2026-09-07 12:09:33"}
{"bankAccount":"***6152","bankName":"KCB Bank","bankPaybill":"522522","level":"info","message":"[Guardian Payment] Bank C2B direct settlement configured","service":"cbc-sms","timestamp":"2026-09-07 12:09:33"}
{"data":{"id":null,"label":"Pay KES 1 via M-Pesa STK","name":null,"type":null},"durationMs":23,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:33","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.55,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c314ab40-e625-4c05-aab3-f4522e4799da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:33","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"checkoutRequestId":"ws_CO_07092026120931631706576238","guardianId":"1d8921a4-3c48-4035-9b8d-6098367e43c6","level":"info","message":"[Guardian Payment] STK Push initiated successfully","requestId":"eddb0d3e-4f58-47f8-bef5-bcf0dec45578","service":"cbc-sms","timestamp":"2026-09-07 12:09:34"}
{"durationMs":1674.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/pay-mpesa","requestId":"377512c3-fc6e-4020-af11-772065663142","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:34","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/pay-mpesa"},"durationMs":1997.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:35","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bf25636b-a133-4be2-9d8e-29bdd07210bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:35","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":48.29,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238","requestId":"79c3139b-78ce-4d88-87a1-f4b1598d8d0c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:37","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238"},"durationMs":352.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:38","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5ee7c389-201f-486a-979a-805bfa646ba8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:38","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":78.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"8639ac06-19b3-43d5-b463-c902fcbf1de7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238","requestId":"5032aab0-02c0-4fb2-b7bd-450649191354","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:39","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":346.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ca671047-1119-486d-bb97-814dea7b2256","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238"},"durationMs":328.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:40","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":7.08,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d8549d1a-0985-4616-97c0-0a09d049edc1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:40","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":45.58,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238","requestId":"a476a8f4-7b20-4203-b108-addfbd61b113","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:41","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238"},"durationMs":334.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:42","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":6.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c079091b-0554-4a9e-9883-e3d91d63659c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":44.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238","requestId":"d4ae7f46-27ca-4a86-aed8-0a14c663da2f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:42","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238"},"durationMs":304.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:44","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.7,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4c15e027-2dac-47cd-ae6b-8ec78bda0665","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:44","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":115.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238","requestId":"91e88469-e977-42cc-b5f8-5f974215f9ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:45","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238"},"durationMs":388,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:46","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.16,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"775b0c46-2037-4ff9-bda3-ae97f0cff9df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:46","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":46.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238","requestId":"b7cc4ee6-19a7-45a6-bf2e-1894d50e070a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:47","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238"},"durationMs":310.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:48","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9e773a7e-731b-4c7e-8d24-214a50c61ab9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:48","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":43.08,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238","requestId":"cd94b89c-d02b-40b2-8eb4-f5c159ebcdb0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:48","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":39.5,"ip":"196.201.213.44","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/mpesa/callback","requestId":"7395a2a9-1e1f-437c-b234-87b4f7fd6445","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:49","userId":null}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238"},"durationMs":308.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:50","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":12.35,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"938e9d8b-fa1b-40a9-80d2-73259e7eae62","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":44.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238","requestId":"41726e59-ca94-48d7-8e4d-2920bac86289","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:50","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees/payment-status/ws_CO_07092026120931631706576238"},"durationMs":306.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:52","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":14.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c39beb07-7a09-422a-9f91-237ad55ab9e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":14,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:53","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":76.98,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"398f4b73-788e-4d99-8862-667d965f17c4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:53","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":218.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees","requestId":"7be998f0-86fa-41cc-be24-b6ddb2a294d3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:53","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/children/cmp8gtpz200fy8bcnxg8120p8/fees"},"durationMs":487.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:54","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":14.94,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"de3987cb-57e0-433d-86e6-20149e65e6ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:54","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":47.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2b6ba91a-fc29-49a2-ac32-8c10fefa6e74","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":54.53,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1b327c33-d916-4d8c-8549-ff9df3d5eb11","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":325.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":326.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":5.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1cd19972-4c1b-4366-a16f-9d1e0c21ab81","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:57","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":2.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1c1cb6da-7020-4263-b4d9-eb230c68d6b9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:57","userId":null}
{"durationMs":130.57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"ca30eb1b-dddd-4920-8dc9-12299908606d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":182.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d1b5fe0f-55f5-47b0-a664-ded884c8a5b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":166.51,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c544fda2-4dd4-4164-8fc4-6e8506fcff19","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":287.2,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"070458f2-f3d3-4458-b342-bd9db70d0010","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":142.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"6368f5a6-2541-49f3-9ba0-c5f0fc7487a6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":257.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"4c7fd811-567a-45aa-a5d3-106c31b12f5d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":215.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"efb3169e-c3bc-46da-a656-24e54dbd5dfe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":197.97,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"8d448d0c-4a6c-4d87-a49e-ac098a2ef481","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":243,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"01e1b922-d319-4ffe-b338-89a4905cfffb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:09:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":292.41,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"812135f3-244f-4717-9c4a-135d88696900","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":272.19,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"d7bda3d0-ea35-4cfb-b38f-ea515d303299","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":199.17,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"2b2a03fc-7f28-41a2-8fac-e46a128488c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":382.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":442,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":462,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":576.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":454.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":528.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":586.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":587.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":591,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":593.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":629.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":707.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:09:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.46,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"27aedd2e-47e4-4aa0-bca2-92056c6ccd2c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:09:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 12:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 12:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 12:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 12:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:10:00"}
{"durationMs":1.6,"ip":"62.252.191.198","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"47d2e1c5-a5ef-4dd6-8ae3-91a8eb6ee922","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:00","userId":null}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8a1941c4-e704-4788-9844-a38ad89ef177","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:01","userId":null}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"62.252.191.198","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:10:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"62.252.191.198","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:10:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.32,"ip":"62.252.191.198","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8a3977bf-c8d8-491f-acaa-054b662969f0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:02","userId":null}
{"data":{"href":"/dashboard/finance/invoices","navId":"1788772204141-538918","text":"Invoices & Reports"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.55,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cbbc6434-fb87-4628-b905-b242cfd072bc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":102.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"faa0683d-6817-4f69-b101-fbf3306f37fe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"4eacfd27-d74a-4966-bceb-bc00ee55aad1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":195.23,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/payments?page=1&limit=20","requestId":"a69d303a-7325-443d-8f70-989e4c62b8a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":195.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"8bdd0df3-7aae-4808-a4b4-6936f039b1b7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":593.54,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?page=1&limit=20","requestId":"265cf820-7709-4ed3-8f0d-4eb63cada55e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/finance/invoices","navId":"1788772204141-538918","text":"Invoices & Reports","to":"/dashboard/finance/invoices"},"durationMs":1162,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788772204141-538918","to":"/dashboard/finance/invoices"},"durationMs":1162,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788772204141-538918","to":"/dashboard/finance/invoices"},"durationMs":1212,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":366,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":368.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/payments"},"durationMs":496.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":787,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d4af81c7-f8f3-402f-a711-30a5ee8cb3aa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":879.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bd7bf741-f89d-45f8-8fde-a745bd1c771f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Payment History","name":null,"type":null},"durationMs":60,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.12,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8d76847f-c657-437f-9286-692bf066de4a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":86.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance/payments/79d72352-cedd-4bf6-92b1-7eb8ad223780","requestId":"6c67f40d-2f7c-4afc-a281-5618498e8ccf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance/payments/79d72352-cedd-4bf6-92b1-7eb8ad223780/allocations","requestId":"1979b61b-b1de-4114-94b7-330cf9729c82","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Payment History","name":null,"type":null},"durationMs":139,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/student/cmp8gtpz200fy8bcnxg8120p8/fees","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:36","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bcc0a54a-1fbc-43db-b710-570c5629b150","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":30.7,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"806b4e3a-e6b3-4b90-948a-3f330d13b131","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:10:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":64.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"bd32597d-34cf-42db-9d7c-c639e0473c80","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:10:56","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":299.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":330.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:57","userAgent":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Mobile Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":10.78,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"71cdbf27-a752-4409-aeb9-b0aa3476da0e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:57","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":68.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e5c97076-f44f-4193-9304-a703eed7deaf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:10:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.46,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"45293827-10d5-4b5c-bc2d-52de3334eb8e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:10:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":369.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":339.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:10:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4b52eb65-e918-40ef-928c-3806b23e76ff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:10:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:11:00"}
{"durationMs":114.78,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"24068fe9-080b-4944-85f7-cbae9c932933","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:11:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/fee-dashboard","navId":"1788772288039-61950","text":"Fee Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/invoices","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","href":"/dashboard/finance/fee-dashboard","navId":"1788772288039-61950","text":"Fee Dashboard","to":"/dashboard/finance/fee-dashboard"},"durationMs":705,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","navId":"1788772288039-61950","to":"/dashboard/finance/fee-dashboard"},"durationMs":705,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/invoices","navId":"1788772288039-61950","to":"/dashboard/finance/fee-dashboard"},"durationMs":731,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.08,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b3186e58-b730-4e9a-a02b-f5d1406d1aec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:11:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":412.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/collection-velocity","requestId":"95bda90b-0e61-4156-b384-bcee6688f8ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:11:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":411.12,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/debt-aging","requestId":"99ec9b05-f3c8-40b6-9eea-5a62646ebde3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:11:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":414.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/payment-segments","requestId":"bd609417-071f-4180-9bb6-fdebedf270c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:11:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":416.35,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/forecast","requestId":"c32ca5ea-0802-4354-9866-48c16191939c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:11:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":442.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"7789a10c-b298-4073-8710-cba6f38a0000","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:11:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":378.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/debt-aging"},"durationMs":766.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/payment-segments"},"durationMs":768.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/forecast"},"durationMs":770.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":772.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/collection-velocity"},"durationMs":773.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cb045f04-bb43-48ea-a25a-f2775aaf9d5c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:11:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":79.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"347233d9-f066-4853-82b3-af4ef7cd84f2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:11:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":107.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"d04a40fc-5b02-41cb-9ef8-22f0a194b497","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:11:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":125.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"689fd8b7-be3f-4ac7-9a86-fc6df05bb2d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:11:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":118.72,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"48fc2c6a-5042-4c7d-b692-3f708027fdc7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:11:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788772294806-500356","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","href":"/dashboard","navId":"1788772294806-500356","text":"Dashboard","to":"/dashboard"},"durationMs":102,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","navId":"1788772294806-500356","to":"/dashboard"},"durationMs":180,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":337.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":364,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":381,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":382,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.4,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3ecb4a25-32a1-4168-ae7d-7d3c2b6fcd3e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:11:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":125.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"627d75c4-cbf4-4fd9-b8bb-a007a67ac0c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:11:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":126.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"89af46de-42c4-4812-bfd0-e30d7c13d4d9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:11:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":386.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":390.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:11:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9dcaafb-4c8a-44ac-ad06-8522b56b66e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:11:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:12:00"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":25,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1503001a-f5b7-469b-b2dd-f198df30464f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":9,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5d0c7867-85f4-458c-a04f-e063ccc99595","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1788772334593-599268","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a21c50a1-2d44-444b-9014-ca167a684ace","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":229.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"fe947aac-f4a8-49c4-b901-63c3cff4cc54","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":259.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"af254368-b0de-4af8-ac95-53f37afe6972","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":363.77,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"83caeb04-c427-4038-b23f-a2bb7206e625","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":380.35,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"bff5116d-6e0f-4d5f-9514-99f5408ef33e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/students","navId":"1788772334593-599268","text":"Students","to":"/dashboard/students"},"durationMs":1276,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788772334593-599268","to":"/dashboard/students"},"durationMs":1276,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788772334593-599268","to":"/dashboard/students"},"durationMs":1339,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":585.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":588,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":705.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":706.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f4ad4f56-2023-41c6-ae59-f4964cdd7952","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Add Student","name":null,"type":"button"},"durationMs":24,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9b463443-bf1d-4499-90cd-f2a9e7251940","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":72.83,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b7a5ef8d-108b-42f9-b877-78c38c4a5f27","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.34,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"29002d71-7bcf-4054-96fd-98516b65312a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/next-admission-number","requestId":"130b58f3-49f3-4328-998a-6b499db61970","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":null,"navId":null,"text":null,"to":"/dashboard/students/new"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":null,"to":"/dashboard/students/new"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":339.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":345.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/next-admission-number"},"durationMs":375.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:12:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7bbd1cb5-999d-493c-9541-0fbb963e63ab","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:12:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":106.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d3bfa8ad-f213-4d26-bbf4-393bff22e76f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:12:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":106.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"775635fa-ffda-44e0-8647-07c8ad5d0775","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:12:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":368.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:13:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":372.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:13:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"838befb4-3ffc-4fe3-abaf-ab500c8130fc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:13:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:13:00"}
{"durationMs":216.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians?page=1&limit=10&includeStudents=true","requestId":"7700ce0c-3fc8-4794-9be2-f0d255cba430","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:13:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1788772425514-150076","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:13:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students/new","href":"/dashboard/guardians","navId":"1788772425514-150076","text":"Guardians","to":"/dashboard/guardians"},"durationMs":418,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:13:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students/new","navId":"1788772425514-150076","to":"/dashboard/guardians"},"durationMs":444,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:13:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.23,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"05461522-7755-435c-b7ba-374b0e969829","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:13:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/guardians"},"durationMs":475.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:13:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":33.4,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7355db0a-86ac-41d8-8351-6f45797844c5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:13:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians/new","navId":"1788772428531-823585","text":"Add Guardian"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:13:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","href":"/dashboard/guardians/new","navId":"1788772428531-823585","text":"Add Guardian","to":"/dashboard/guardians/new"},"durationMs":386,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:13:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":"1788772428531-823585","to":"/dashboard/guardians/new"},"durationMs":424,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:13:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cabf4ce8-ffc3-4eb9-8b08-f068fea69e89","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:13:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":140.15,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b2ec7fb7-fe2c-42e0-9aa2-5bab8f493eac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:13:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":123.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"6621265c-f878-4cfa-90e7-7449a63bb14d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:13:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians/new","href":null,"navId":null,"text":null,"to":"/dashboard/guardians"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:13:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians/new","navId":null,"to":"/dashboard/guardians"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:13:59","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.92,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"46c3a027-ecb3-4882-afd9-3b08bedbc085","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:13:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:14:00"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":401.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":394.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians/new","navId":"1788772435556-877067","text":"Add Guardian"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","href":"/dashboard/guardians/new","navId":"1788772435556-877067","text":"Add Guardian","to":"/dashboard/guardians/new"},"durationMs":71,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":"1788772435556-877067","to":"/dashboard/guardians/new"},"durationMs":95,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3fa231ee-9576-4f36-8ce3-2902dd354ecc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1788772448058-727181","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians/new","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians/new","href":"/dashboard/guardians","navId":"1788772448058-727181","text":"Guardians","to":"/dashboard/guardians"},"durationMs":101,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians/new","navId":"1788772448058-727181","to":"/dashboard/guardians"},"durationMs":132,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a93f6378-a9e4-49a5-8688-9a59b26aac8a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":8,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","href":null,"navId":null,"text":null,"to":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":null,"to":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.72,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d142cdaf-4142-44e4-a383-f9f4533cf154","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":82.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680","requestId":"712a8956-c144-470f-b0c8-b11c754494b2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680"},"durationMs":356.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ff050902-ee25-4417-85e3-ff0dac43c730","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680/edit","navId":"1788772457783-268118","text":"Edit Guardian"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680","href":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680/edit","navId":"1788772457783-268118","text":"Edit Guardian","to":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680/edit"},"durationMs":693,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680/edit","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680","navId":"1788772457783-268118","to":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680/edit"},"durationMs":693,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680/edit","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680","navId":"1788772457783-268118","to":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680/edit"},"durationMs":703,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680/edit","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1dbc43e1-bf7a-4c9d-bc18-56c105a8fa77","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1788772469070-878705","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680/edit","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680/edit","href":"/dashboard/guardians","navId":"1788772469070-878705","text":"Guardians","to":"/dashboard/guardians"},"durationMs":66,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians/b921e25c-ef97-43b0-a355-9c1e9755d680/edit","navId":"1788772469070-878705","to":"/dashboard/guardians"},"durationMs":100,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5cc7e0b5-8f83-4000-b783-e158789fb90d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":73.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"e4d7455a-bf06-44e9-b225-e27d13ec7ab5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":119.35,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"b2a05eba-a44d-4f80-8e77-27a462946a82","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":322.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"977bb589-98ff-409d-ae12-a5520598575b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1788772471103-195019","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","href":"/dashboard/students","navId":"1788772471103-195019","text":"Students","to":"/dashboard/students"},"durationMs":94,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":"1788772471103-195019","to":"/dashboard/students"},"durationMs":158,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":341.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":430.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":666.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ed76c51b-b403-409d-ba01-41f6ab063b81","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"1495eab3-8143-44db-a3a3-2a6d0b444487","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"976cc347-21ca-4650-9b51-94ea1b64ff15","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":268.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c","requestId":"c32840a0-119c-42af-bed3-240404716a19","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":9,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":null,"navId":null,"text":null,"to":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/edit"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/edit","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":null,"to":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/edit"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/edit","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":341.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":354.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"57f62d47-5456-43ca-812a-e8ccf630f350","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.99,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpoj00dq8bcn0szz5jea","requestId":"e372561c-32c9-47fb-8443-2367eea0723e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c"},"durationMs":524.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":280.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"191b7b91-96a7-4ec0-8e26-7924d177f140","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/guardians","navId":"1788772484795-325079","text":"Guardians"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/edit","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/edit","href":"/dashboard/guardians","navId":"1788772484795-325079","text":"Guardians","to":"/dashboard/guardians"},"durationMs":82,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students/ccf1345c-ce6c-441f-a9da-c788b4eaca0c/edit","navId":"1788772484795-325079","to":"/dashboard/guardians"},"durationMs":119,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.37,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"73d60e20-157a-48a0-b137-cb8cb39e6fd3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.15,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"483339a9-64bb-4c4a-9f75-56dc95988ac2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics","navId":"1788772491727-774165","text":"Grades & Streams"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/guardians","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","href":"/dashboard/academics","navId":"1788772491727-774165","text":"Grades & Streams","to":"/dashboard/academics"},"durationMs":702,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":"1788772491727-774165","to":"/dashboard/academics"},"durationMs":702,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/guardians","navId":"1788772491727-774165","to":"/dashboard/academics"},"durationMs":720,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2c3ba0d4-6a6d-432d-883f-92e0b27199f7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":337.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:14:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1b541163-e1a1-4a99-bf35-b9f1cdcec412","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:14:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":96.54,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c93846b8-84da-46c8-91f1-b16842e44e04","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:14:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":96.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3ab9f45c-ac59-4ba4-982b-8b6d736bc94a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:14:59","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 12:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 12:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 12:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 12:15:00","totalConnections":1}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":375.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":380.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.92,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4b4eb477-4550-418b-b568-64c6e2e59b99","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e1baf24d-6e0e-4c5d-9141-ef1bba43a6b5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:01","userId":null}
{"durationMs":69.2,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"46f9a2be-1948-4640-b88d-49270888c656","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":91.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"9d9939c8-8001-419b-aa2c-0d7ec918bab4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Add Grade Level","name":null,"type":"button"},"durationMs":176,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":332.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":370,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.04,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cfe308c1-e64d-46bf-8ffc-7e35fa397dca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":69,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":37.74,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"068ff79c-a8f9-4f02-a00e-de9d4cb8257f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:rqg:-trigger-assignments","label":"Class Teacher AssignmentsTeachers7","name":null,"type":"button"},"durationMs":11,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a9554f0e-0881-4e8e-97ac-a4a4217bc2f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/subjects","navId":"1788772528215-835019","text":"Subjects"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","href":"/dashboard/academics/subjects","navId":"1788772528215-835019","text":"Subjects","to":"/dashboard/academics/subjects"},"durationMs":744,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","navId":"1788772528215-835019","to":"/dashboard/academics/subjects"},"durationMs":744,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics","navId":"1788772528215-835019","to":"/dashboard/academics/subjects"},"durationMs":773,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"30892bc2-63fa-477f-8375-9d209dec015f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":370.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"ddc18f08-da47-41d3-a9ba-2f9ec0fb0b38","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":360.46,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/teacher-assignments","requestId":"3225039d-ba97-445e-a0ad-82dfbd0f8b51","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":392.72,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"926cc0dc-1dcf-444d-816e-0b462c6d4d98","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":427.16,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff/departments/list?type=academic","requestId":"839108be-fe0a-4e25-b91c-ba6b1ac79c33","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":678.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":988.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff/departments/list"},"durationMs":990.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/teacher-assignments"},"durationMs":994.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d9a9f76a-d514-4a06-b5a0-18af3ca0c4ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":64.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"c6cb9c25-dfa4-4fba-ac7e-f48ba7cace73","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:15:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academic/calendar","navId":"1788772533663-349858","text":"Calendar & Sessions"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/subjects","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/subjects","href":"/dashboard/academic/calendar","navId":"1788772533663-349858","text":"Calendar & Sessions","to":"/dashboard/academic/calendar"},"durationMs":704,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/subjects","navId":"1788772533663-349858","to":"/dashboard/academic/calendar"},"durationMs":704,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/subjects","navId":"1788772533663-349858","to":"/dashboard/academic/calendar"},"durationMs":721,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.33,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ed1459e2-fab1-477f-94a2-4b36d2e118ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":144.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/events?startDate=2026-08-24T21:00:00.000Z&endDate=2026-10-07T20:59:59.999Z","requestId":"245261c3-9f33-4104-8720-18cfa169641e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":140.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"7b1f157e-fdbe-417b-8a5e-91ca1e8ffe39","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":172.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"2b2a9321-b756-4e84-81fd-163878017c4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":344.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":420.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/holidays"},"durationMs":422.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/calendar/summary"},"durationMs":468.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dd5abfc8-e558-405a-9bb0-ad0877515986","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":48.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"55f40fc4-a8cd-4024-b481-6188198add3a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"da20837c-5451-4a1a-a8dd-915e7f2d820a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/attendance","navId":"1788772543424-662864","text":"Attendance"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academic/calendar","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","href":"/dashboard/attendance","navId":"1788772543424-662864","text":"Attendance","to":"/dashboard/attendance"},"durationMs":388,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academic/calendar","navId":"1788772543424-662864","to":"/dashboard/attendance"},"durationMs":412,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":314.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":317.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.35,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f93e29b4-9048-4579-94a4-b7595cda1fd9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":87.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"28e14365-95b2-4940-93e1-906bbe31170f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":92.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"fa39974c-0ea5-4a81-b32c-0ca50fe1aff7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":126.45,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?date=2026-09-07","requestId":"460ac728-a937-40df-b144-e2f69f42c327","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"History","name":null,"type":null},"durationMs":47,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":405.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":408.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":427.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:15:55","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"da69934a-e7a1-4c3f-9a74-5543c1ed4666","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:15:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":185.82,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"eecd1cfb-b916-4557-b13d-339a296d0f41","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:16:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":187.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ac4c6f1b-e033-4539-8ea6-14f6fbf8a504","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:16:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:16:00"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":489.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":495.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8c492156-f049-49b4-b1b3-4dde23289705","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable","navId":"1788772557023-243763","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b6598f41-4899-4814-9874-5adc7f99cb3c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":116.08,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"00f6d07d-34ef-47d9-9c56-75f884696cec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.7,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/academic-years","requestId":"8e612dc6-7d89-4a10-82cc-808fc681403c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":382.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?role=TEACHER&limit=100","requestId":"1127b2e1-302e-4f1c-b07d-80188704cc3d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":627.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/rooms","requestId":"ab44ac95-3148-4f02-a4ca-6820a3e852bc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/attendance","href":"/dashboard/timetable","navId":"1788772557023-243763","text":"Timetable","to":"/dashboard/timetable"},"durationMs":976,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/attendance","navId":"1788772557023-243763","to":"/dashboard/timetable"},"durationMs":976,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/attendance","navId":"1788772557023-243763","to":"/dashboard/timetable"},"durationMs":997,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":512.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/academic-years"},"durationMs":516.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6c140092-57ac-46ad-a75b-97e272e47594","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff"},"durationMs":817.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/rooms"},"durationMs":1129.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6a9557d9-dcba-4532-85d5-ed543e741c97","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":75.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/terms","requestId":"a622444d-0b2d-4b58-8021-ab03cc5f826b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"d430c876-fe10-4cbb-9a2c-fa257d64b237","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":76.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"7a97da32-631b-4856-9bdb-54ee50564b8d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/setup/periods","requestId":"2ca699dc-d494-473f-807c-9f01b791d25b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable/builder","navId":"1788772564130-954110","text":"Build Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","href":"/dashboard/timetable/builder","navId":"1788772564130-954110","text":"Build Timetable","to":"/dashboard/timetable/builder"},"durationMs":448,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable/builder","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","navId":"1788772564130-954110","to":"/dashboard/timetable/builder"},"durationMs":487,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable/builder","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.31,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dd93a586-aaf1-471d-925d-ef87e26deec3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":370.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":373.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/terms"},"durationMs":375.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/setup/periods"},"durationMs":377.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f61b25ac-fbe8-468c-8516-e8bd1cabd4dc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Add First Slot","name":null,"type":"button"},"durationMs":59,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable/builder","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":11.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c1a7550f-b0d0-4b6a-a6e9-8be853396f8a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.97,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"7a5eaae2-ecfe-46fd-a507-cd2c3fe7d452","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.77,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/academic-years","requestId":"2e392170-7f8a-4032-939b-835ddf48aba6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/builder","href":null,"navId":null,"text":null,"to":"/dashboard/timetable"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/builder","navId":null,"to":"/dashboard/timetable"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":436,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/academic-years"},"durationMs":439.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"46e16e3e-5649-4184-8e23-fa593784fa18","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable/setup","navId":"1788772578869-558657","text":"Timetable Setup"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","href":"/dashboard/timetable/setup","navId":"1788772578869-558657","text":"Timetable Setup","to":"/dashboard/timetable/setup"},"durationMs":561,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","navId":"1788772578869-558657","to":"/dashboard/timetable/setup"},"durationMs":561,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","navId":"1788772578869-558657","to":"/dashboard/timetable/setup"},"durationMs":660,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.17,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cddf6a4c-2c64-4a59-a863-dc706c76e6cc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Rooms","name":null,"type":"button"},"durationMs":38,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.64,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9900a070-5863-4e03-83ec-889b392d261d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":56.97,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"c6766465-8763-4afd-b800-1b16b9ec01d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.67,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/academic-years","requestId":"d3178179-f08d-4c5a-b023-3b64129d8177","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable","navId":"1788772592297-121330","text":"View Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable/setup","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/setup","href":"/dashboard/timetable","navId":"1788772592297-121330","text":"View Timetable","to":"/dashboard/timetable"},"durationMs":52,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable/setup","navId":"1788772592297-121330","to":"/dashboard/timetable"},"durationMs":71,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":330.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/academic-years"},"durationMs":364.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3f68f099-4f7f-48c1-a266-d02c68002a61","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"By Teacher","name":null,"type":null},"durationMs":15,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bcaac97d-54c2-4993-9075-c9226967ab15","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.45,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/settings/school","requestId":"fde39d73-5890-4947-b41c-9fe832d168e8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":398.97,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables/master-view","requestId":"575ed86d-b669-43e7-aec0-bf450b7d2278","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Master View","name":null,"type":null},"durationMs":15,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/settings/school"},"durationMs":365.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/timetables/master-view"},"durationMs":683.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.45,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6a24b38a-9fdb-4219-b527-38e970993fb0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable","navId":"1788772608598-358371","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.65,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f25adf4a-d50a-4c8c-bf66-89849278f471","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:53","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/timetable","navId":"1788772610976-795472","text":"View Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:16:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8dde9364-fdf7-4df0-9393-54c60ba73b51","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:16:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:17:00"}
{"durationMs":89.54,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"22a57040-aa9b-4a56-92b3-87f517577b85","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:17:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.33,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5a00dda6-6f52-485b-84b7-ba38877b61dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:17:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":363,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":366.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"831a33de-0f68-4d04-9ab8-807c45efaa6f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":247.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"3478978b-888a-4ed2-8139-9975fea7a1c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":349.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms","requestId":"28e4adf9-2a1b-43e5-8351-f1d0fea76b9f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/cbc-grades","navId":"1788772618603-512717","text":"CBC Grades & Results"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","href":"/dashboard/academics/cbc-grades","navId":"1788772618603-512717","text":"CBC Grades & Results","to":"/dashboard/academics/cbc-grades"},"durationMs":756,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","navId":"1788772618603-512717","to":"/dashboard/academics/cbc-grades"},"durationMs":756,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/timetable","navId":"1788772618603-512717","to":"/dashboard/academics/cbc-grades"},"durationMs":784,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ed23b7c6-e8a1-46b7-944b-5c98fc4e65df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":379.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"7814fde7-6d5d-412d-937a-49f643a29108","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":315.45,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"e5d53beb-1c26-4dde-a7f4-c50b94c0f366","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":493.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"80367997-bafa-4c65-8ace-1ae51b8a8a9c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":452.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students","requestId":"da707ef2-6799-4819-ac49-0535c955ad3e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":190.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?limit=5000","requestId":"7c93b794-2e71-400b-ba59-8435338632f2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":202.15,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&isPublished=true&limit=100","requestId":"0934ad37-0b81-4214-a883-9e7a4abeebaa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":222.74,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/grades?termId=cmp8gtpme00d68bcnq5m8mk8x&limit=2000","requestId":"938cc417-c015-4747-bbe2-11a9800b40a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":549.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/terms"},"durationMs":639.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":702.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":772,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":803.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/learning-areas"},"durationMs":803.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"682d29e4-d48b-4ace-b54b-a29f58dc393d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":725.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:06","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":727,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:06","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/grades"},"durationMs":731,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:06","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a18d4a1d-fef8-4a5c-b5bf-42feb79553e3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":32.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"6f54d5f6-b0ac-4731-9850-3c96f6c57356","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:17:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":66.12,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"df9272f9-a88d-4874-970e-c554f463dcde","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":41.89,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"d577e03e-99a5-4672-802a-47c1f496b0a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":49.46,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"b74a68e4-b23f-4e41-8c69-dda47b4a8970","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300","requestId":"8a4ddde1-fd9e-43f9-822c-a83acd5d0775","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":132.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments","requestId":"3924981e-0c99-4936-ae59-c92987ebb8c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":72.51,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?limit=300&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"1b94a6e5-fed1-4144-b736-f1298c39abe8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.82,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/teacher-assignments?academicYearId=cmp8gtpm300d48bcnc9mas3i7&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"2b0c29ee-b8b7-4017-a787-83dc28b4b715","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r1tj:-trigger-manage-results","label":"Manage Results","name":null,"type":"button"},"durationMs":12,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":329.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":332,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":335.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":373.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":460,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/teacher-assignments"},"durationMs":566.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":343.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/teacher-assignments"},"durationMs":374.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.97,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"db269161-730a-471a-80fc-c0a639464a6f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":94.85,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/1bc4c141-7909-4356-9f42-2b08fdc4fb8d/results","requestId":"98e894d9-7b4c-4253-9d33-ebf0877aee13","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/1bc4c141-7909-4356-9f42-2b08fdc4fb8d/results"},"durationMs":355.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"260eae14-c26e-42a2-8c56-cc5f9dbc213c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Teacher Uploads","name":null,"type":null},"durationMs":65,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":10.83,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"67d0ffe3-7f40-4cc7-a2d1-106d6b4ab5f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.64,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"dab608ba-5404-44f9-84c1-4aa304611a38","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:17:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":60.34,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"47897a82-4463-40af-876c-593281270a62","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x&limit=100","requestId":"086319f9-7bbf-4a9d-881e-c6ed64714236","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":147.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=&limit=100","requestId":"b30e626c-d8e4-480d-84a5-f9d9a58b68db","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":128.98,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/analytics?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"31510fd4-236f-4d30-b88b-825ebf75c9b6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/academics/assessment-analysis","navId":"1788772640596-622110","text":"Assessment Analysis"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","href":"/dashboard/academics/assessment-analysis","navId":"1788772640596-622110","text":"Assessment Analysis","to":"/dashboard/academics/assessment-analysis"},"durationMs":560,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","navId":"1788772640596-622110","to":"/dashboard/academics/assessment-analysis"},"durationMs":560,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","navId":"1788772640596-622110","to":"/dashboard/academics/assessment-analysis"},"durationMs":621,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3e94bdf2-ddc4-4864-bc00-a8336b52c23d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":340.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":376.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":433.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":466.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/analytics"},"durationMs":437.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.72,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e222ba52-b43a-4df3-8abc-525a6668b124","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.81,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"c3250271-00dd-47da-abf4-e4aa9bcd5902","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:17:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":104.55,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10","requestId":"0786d3ab-f697-4395-a2af-90330c1a1565","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":59.46,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"21725588-181f-4c6c-a2c6-a9063cd8f61a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":29.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"0a22bff7-ecf2-455b-b233-8282aaa52398","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":91.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"dd04d580-9220-496e-beef-807cf6b13f31","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/assessments/exams","navId":"1788772655813-155753","text":"Exams"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/assessment-analysis","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/assessment-analysis","href":"/dashboard/assessments/exams","navId":"1788772655813-155753","text":"Exams","to":"/dashboard/assessments/exams"},"durationMs":439,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/assessment-analysis","navId":"1788772655813-155753","to":"/dashboard/assessments/exams"},"durationMs":485,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":318.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ad57907f-54f4-43b2-b784-70cf9cc74212","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":367.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":385.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":396.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":437.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7bdbfa53-4d2c-4f42-83ff-8add1420a5da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Create Assessment","name":null,"type":null},"durationMs":66,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:17:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.46,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cd10d60c-34df-4e5b-9fd2-d6d632c474db","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:17:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:18:00"}
{"durationMs":80.7,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"47a4126c-2fce-4a47-8477-6e5db414dc04","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:18:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":77.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bed99b43-cd03-4508-ac34-89fc9f8bc07b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:18:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":374.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":386.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"023bd181-555c-4da1-83c0-551219712a4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.18,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"45ee517c-8762-4a8a-a92b-b2fbb7d7b8c3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.54,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"ee602080-e8e5-43e5-a996-ebd902f0b22d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:18:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":93.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"efaf4116-f96b-4a9e-b506-3cb0c8b56358","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":105.51,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"54037e90-a6e9-49ff-8982-80929b1bc18d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":149.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments/776515a8-d0d3-4b84-bfef-84387f9ee7d0/results","requestId":"5ce7aa98-f65e-4b30-a30e-39405c34d9eb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":6,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","href":null,"navId":null,"text":null,"to":"/dashboard/academics/cbc-grades"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","navId":null,"to":"/dashboard/academics/cbc-grades"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":328,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":350.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":435.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":436.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments/776515a8-d0d3-4b84-bfef-84387f9ee7d0/results"},"durationMs":471.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"49717f2a-4c4a-4a9d-b820-20c087fea3dd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/cbc/report-cards","navId":"1788772718051-476434","text":"Report Cards"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/cbc-grades","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f18c187d-efcc-4880-880b-d7e756574dfc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":246.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"97945b3c-b030-4ca2-8845-6335cfc81436","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:18:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":326.88,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"0c33fe89-b470-4fbc-9e57-af100e8052fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":365.6,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"d7a74323-b6d1-453c-8d29-9c15a3cbc9b6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":385.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"fc1b335f-f7b2-4c9a-a773-e69ebad2ee36","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":473.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments","requestId":"106d44b7-12f8-48aa-bcd0-c35de48be594","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":448.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"4e84ce71-cc41-45ae-bd9b-944a5c0afee9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":581.74,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"5664b610-2a65-4ff5-acc2-59fad9fb4304","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":615.31,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10","requestId":"9da52829-4bf8-4a28-9935-e83608f8ee32","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","href":"/dashboard/cbc/report-cards","navId":"1788772718051-476434","text":"Report Cards","to":"/dashboard/cbc/report-cards"},"durationMs":1245,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","navId":"1788772718051-476434","to":"/dashboard/cbc/report-cards"},"durationMs":1245,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/academics/cbc-grades","navId":"1788772718051-476434","to":"/dashboard/cbc/report-cards"},"durationMs":1296,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":692.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":695.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":699.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":726.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.99,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a74ce435-1cb4-45fe-8716-b1a5b466ac3b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1180.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":1215.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":1188.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":1240.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d267a2ba-0405-4c1d-be36-58449d580573","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":113.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts7200yu8bcnrp0e2n77/cmp8gtpme00d68bcnq5m8mk8x","requestId":"d8576642-00d0-4b2f-921d-f5fedfd9fbda","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":884,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts7200yu8bcnrp0e2n77/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":372,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:18:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3734e388-c520-4e90-8758-95b2c1f92e0e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:18:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:19:00"}
{"durationMs":144.15,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cee0080c-19aa-4cd9-8cf0-e9a7b41c64b1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:19:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":190.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9b389146-096f-4318-b031-b4a13f76118e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:19:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":494,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":951.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":935.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.34,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b963048e-7f01-4f8c-b6d7-f7a1941b0d32","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r2hd:-trigger-customize","label":"Customize & Preview","name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"21cff099-977f-47b0-bd75-7deb8f1a230b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/cbc/report-cards","navId":"1788772752202-58330","text":"Report Cards"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f682bf11-350c-4198-9d3d-6d7ad47b831b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r2hd:-trigger-list","label":"Report Cards List","name":null,"type":"button"},"durationMs":481,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.55,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9d97e803-0c13-4b42-b3f7-434521d9c062","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r2hd:-trigger-customize","label":"Customize & Preview","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.92,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"94f053de-2000-46e5-a91a-253fe6a16741","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r2hd:-trigger-list","label":"Report Cards List","name":null,"type":"button"},"durationMs":433,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2b455e00-1057-4ecb-8db1-855dd6b81df2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":97,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.51,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"16170430-539a-412b-8482-f261a1ee74ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":139.78,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams?gradeLevelId=cmp8gtpoc00do8bcnolymelvn","requestId":"129eac84-104d-4807-b08f-a4ca46ed04d3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":284.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x&gradeLevelId=cmp8gtpoc00do8bcnolymelvn","requestId":"1a0b2861-41e6-4680-bcef-bd80a4c19fc8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":476.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":784.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"08df1eac-77c0-46f5-9f56-4fb845287045","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":68.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x&streamId=cmp8gtprm00em8bcnpu40bxxe","requestId":"4fbd5dae-3846-4c9e-af0e-16861965f738","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":338.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.29,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"19b4311b-c5a5-4d1f-8074-d5735e60df5d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":82.64,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?termId=cmp8gtpme00d68bcnq5m8mk8x&limit=1000&streamId=cmp8gtprm00em8bcnpu40bxxe","requestId":"ccb205c7-82aa-4926-a22b-9248d3fd9680","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":133.23,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts7200yu8bcnrp0e2n77/cmp8gtpme00d68bcnq5m8mk8x","requestId":"7acb1f0f-2de3-4d0e-abf9-3f8d44127e49","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:19:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":450.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts7200yu8bcnrp0e2n77/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":487.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:19:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.61,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"73bcfdc9-f3ed-4be3-9a4f-62644199251f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:19:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 12:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 12:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 12:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 12:20:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c82bc2f4-ccc1-425d-9e68-80efd3d5f369","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:02","userId":null}
{"durationMs":145.72,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"31212189-63d2-4778-935c-669cedf32dea","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:20:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":156.67,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"781a60e9-bea7-4a79-90e5-b5267f0e1155","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:20:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":250.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts8z00za8bcnvoykm2o5/cmp8gtpme00d68bcnq5m8mk8x","requestId":"9fa2c4a9-52cf-4ed6-a1c6-5102dd51f14b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":480,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:20:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts8z00za8bcnvoykm2o5/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":524.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:20:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":486.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:20:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.51,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0be92a7b-b243-4084-a8db-e64490615b03","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":273.72,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts4200y68bcnwnt1qq6w/cmp8gtpme00d68bcnq5m8mk8x","requestId":"9ff1bf8c-b91b-4512-b723-e7e3ce39ce0d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts4200y68bcnwnt1qq6w/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":557.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:20:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"aa39b164-29ec-444a-93d6-74a98acb6378","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":141.6,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts7200yu8bcnrp0e2n77/cmp8gtpme00d68bcnq5m8mk8x","requestId":"33c49023-77ee-4722-8bf6-441a112c842d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:20:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts7200yu8bcnrp0e2n77/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":401.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:20:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":28.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2ad27c22-e743-4e48-a9be-14dee7f37568","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":99.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts8z00za8bcnvoykm2o5/cmp8gtpme00d68bcnq5m8mk8x","requestId":"560a5234-76ce-4fed-ae5c-0c42c064ddf8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:20:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts8z00za8bcnvoykm2o5/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":354.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:20:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"72004d8d-d951-4b23-ae1b-d56b1b021dbb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":96.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts8000z28bcn30vxv7cc/cmp8gtpme00d68bcnq5m8mk8x","requestId":"434b7015-0770-4d72-8dc0-3a1c578e6f62","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts8000z28bcn30vxv7cc/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":370.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:20:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8646b011-074d-4288-b105-6c581eead97c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":90.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts6500ym8bcngbc7npkz/cmp8gtpme00d68bcnq5m8mk8x","requestId":"0fc50713-27fb-45e3-a27d-f60a6da77639","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts6500ym8bcngbc7npkz/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":349.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:20:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.3,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"40d60a77-9dd4-4732-9f4e-617b8cceecdb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":78.18,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts6500ym8bcngbc7npkz/cmp8gtpme00d68bcnq5m8mk8x","requestId":"7b71b40b-c339-466a-ab20-a7d2dd7636df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:20:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts6500ym8bcngbc7npkz/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":334.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:20:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.97,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3beecf4c-df6a-43d9-8cc8-1706d534b7a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":99.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts8000z28bcn30vxv7cc/cmp8gtpme00d68bcnq5m8mk8x","requestId":"f89feb68-4252-445c-97e3-4950f9a38491","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:20:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts8000z28bcn30vxv7cc/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":364.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:20:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.17,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8abb2dd6-0587-45eb-9345-3ac2004a382b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.82,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts4200y68bcnwnt1qq6w/cmp8gtpme00d68bcnq5m8mk8x","requestId":"66219b5a-f531-4faf-b7a6-db057fa56858","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:20:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts4200y68bcnwnt1qq6w/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":357,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:20:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c3ceda5b-3c81-4df0-94db-34d294031f10","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":89.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts5400ye8bcnpyblencl/cmp8gtpme00d68bcnq5m8mk8x","requestId":"f4b28318-3f7b-4fa4-97cb-2d0f4ee776f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:55","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts5400ye8bcnpyblencl/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":350.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:20:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.17,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e0e94c5e-0401-4c56-95bf-a004f18cf454","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:20:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:21:00"}
{"durationMs":78.39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts5400ye8bcnpyblencl/cmp8gtpme00d68bcnq5m8mk8x","requestId":"5bd428e6-0143-442d-a208-984152d9f1ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:21:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts5400ye8bcnpyblencl/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":433.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:21:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6e65270b-0675-4d25-b937-b8ffb3bf1ca0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:21:02","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":141.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d737562e-b05b-46e0-87f0-e1608ff7304a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:21:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":149.18,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"bc9a9a08-39b4-4970-85fd-eb6c00ab8f44","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:21:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":502.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:21:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":502.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:21:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c55c8efe-9996-4792-9cbb-ba44e1623366","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:21:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:22:00"}
{"durationMs":85.6,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"94d118cd-a548-4d78-aa55-c2a0263d4195","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:22:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":90.65,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ec31ef48-b078-48a9-a8ae-1552bfed951a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:22:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":363.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":367,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.4,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6c2d41c-dad8-4f16-a219-7842716a3204","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":4.3,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/elective-access","requestId":"d9a68b2e-8a3e-47c1-b7f2-5d1424ad2f2d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 12:22:08","userId":null}
{"durationMs":5.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/elective-access/stats","requestId":"9f7f476c-9108-4667-b0f2-67556e8ee939","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 12:22:08","userId":null}
{"data":{"href":"/dashboard/senior/elective-access","navId":"1788772923870-741367","text":"Elective Access"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/cbc/report-cards","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:22:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/cbc/report-cards","href":"/dashboard/senior/elective-access","navId":"1788772923870-741367","text":"Elective Access","to":"/dashboard/senior/elective-access"},"durationMs":463,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/elective-access","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:22:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/cbc/report-cards","navId":"1788772923870-741367","to":"/dashboard/senior/elective-access"},"durationMs":489,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/elective-access","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:22:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":3.41,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"088da217-0793-42af-9f51-24c1e419209f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:09","userId":null}
{"durationMs":405.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"ea56062d-3a60-401b-b69d-f402319ad89d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:09","userId":null}
{"durationMs":104.43,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/elective-access/stats","requestId":"a77429fe-2c8a-458c-89be-c7cfab367f4b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":115.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/elective-access","requestId":"2303e17a-b9d6-4ced-8a27-bf945f3b262b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/senior-secondary/elective-access"},"durationMs":357.2,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/senior-secondary/elective-access/stats"},"durationMs":360.5,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c23895ba-e27f-4b16-880d-dddbc08dc5de","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/elective-access/stats"},"durationMs":362.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/elective-access"},"durationMs":366.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0b02d083-bf6a-40db-9f38-5a3b081175b4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":118.57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/kssea-reports/stats","requestId":"332004a6-6da1-4cc8-b4f0-cafdf429f74d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'KsseaReport.rank' in 'field list'","ip":"41.220.233.110","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async KsseaReport.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async KsseaReport.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listReports (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/kssea-reports.service.js:34:43)\n    at async listReports (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/kssea-reports.controller.js:6:45)","timestamp":"2026-09-07 12:22:13","url":"/api/v1/senior-secondary/kssea-reports","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.92,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/kssea-reports","requestId":"c26adca5-2484-469e-831b-9ec31f3fdcd3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-07 12:22:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/kssea-reports","navId":"1788772928833-964328","text":"KSSEA Reports"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/elective-access","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/elective-access","href":"/dashboard/senior/kssea-reports","navId":"1788772928833-964328","text":"KSSEA Reports","to":"/dashboard/senior/kssea-reports"},"durationMs":398,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/kssea-reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/elective-access","navId":"1788772928833-964328","to":"/dashboard/senior/kssea-reports"},"durationMs":425,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/kssea-reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/kssea-reports/stats"},"durationMs":378.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/kssea-reports"},"durationMs":382.2,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:14","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.88,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"72191198-8de0-49f2-b718-3073df3b3076","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'KsseaReport.rank' in 'field list'","ip":"41.220.233.110","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async KsseaReport.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async KsseaReport.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listReports (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/kssea-reports.service.js:34:43)\n    at async listReports (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/kssea-reports.controller.js:6:45)","timestamp":"2026-09-07 12:22:14","url":"/api/v1/senior-secondary/kssea-reports","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/kssea-reports","requestId":"bdd5c388-4f2b-4287-b251-8e10174f60b9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-07 12:22:14","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/kssea-reports"},"durationMs":402.4,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"baa59859-1f55-4fe7-a307-284e14558fb0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":93.81,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"526ccfcc-16e3-4c33-a920-a4c8b70fdff7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:22:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":254.04,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/payment-segments","requestId":"19e1a4f4-f60a-4bb7-94ab-e7d071087b6b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:22:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":206.57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/debt-aging","requestId":"904d5466-23f7-4e29-99ec-d37ba33bb799","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:22:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":276.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/collection-velocity","requestId":"4c0eb2af-eb5d-4e13-8f13-b4626b6a8e8b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:22:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":226.7,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/forecast","requestId":"73d5b867-b0f5-4bab-b769-8d328a02d545","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:22:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":317.94,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"e1a46c57-fd04-4f05-9c41-1886b17ae396","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:22:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/fee-dashboard","navId":"1788772934512-599723","text":"Fee Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/kssea-reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/kssea-reports","href":"/dashboard/finance/fee-dashboard","navId":"1788772934512-599723","text":"Fee Dashboard","to":"/dashboard/finance/fee-dashboard"},"durationMs":62,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/kssea-reports","navId":"1788772934512-599723","to":"/dashboard/finance/fee-dashboard"},"durationMs":86,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":346.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/payment-segments"},"durationMs":565.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/debt-aging"},"durationMs":567,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.17,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"822c7a61-d6a8-4449-b03a-9466cfa477f3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'KsseaReport.rank' in 'field list'","ip":"41.220.233.110","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async KsseaReport.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async KsseaReport.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listReports (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/kssea-reports.service.js:34:43)\n    at async listReports (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/kssea-reports.controller.js:6:45)","timestamp":"2026-09-07 12:22:20","url":"/api/v1/senior-secondary/kssea-reports","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.29,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/kssea-reports","requestId":"adbd68f9-8dda-4cd6-8ca2-214304ea1ae1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-07 12:22:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/forecast"},"durationMs":977,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/collection-velocity"},"durationMs":978.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":980,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/kssea-reports","navId":"1788772936245-132899","text":"KSSEA Reports"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","href":"/dashboard/senior/kssea-reports","navId":"1788772936245-132899","text":"KSSEA Reports","to":"/dashboard/senior/kssea-reports"},"durationMs":60,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/kssea-reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","navId":"1788772936245-132899","to":"/dashboard/senior/kssea-reports"},"durationMs":70,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/kssea-reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"08dcefea-e8fa-4ecb-97fb-4d39ea490c29","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'KsseaReport.rank' in 'field list'","ip":"41.220.233.110","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async KsseaReport.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async KsseaReport.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listReports (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/kssea-reports.service.js:34:43)\n    at async listReports (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/kssea-reports.controller.js:6:45)","timestamp":"2026-09-07 12:22:21","url":"/api/v1/senior-secondary/kssea-reports","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/kssea-reports","requestId":"a47ca14a-1cf3-4351-999d-94dc0702f70a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-07 12:22:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/kssea-reports"},"durationMs":291.6,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"952c8ece-6d6f-44ef-a8eb-cbdb551d8b99","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/kssea-reports"},"durationMs":307.3,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e7cddfc9-1c45-4f89-abed-fc1f4da8cb2a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":148.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/pathways/stats","requestId":"90be6628-66cd-4478-86fb-b1c583f3b04a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":158.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/pathways","requestId":"dd3daca1-10f8-496e-b8b2-945db44af14c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/pathways","navId":"1788772941114-858518","text":"Pathways"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/kssea-reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/kssea-reports","href":"/dashboard/senior/pathways","navId":"1788772941114-858518","text":"Pathways","to":"/dashboard/senior/pathways"},"durationMs":414,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/kssea-reports","navId":"1788772941114-858518","to":"/dashboard/senior/pathways"},"durationMs":435,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a4bf5625-34b2-4bc6-a660-3b00a479fa07","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/pathways/stats"},"durationMs":438.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/pathways"},"durationMs":441.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cbfc22d5-b69b-40ef-a471-da6fad112ed0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'counselor.photoUrl' in 'field list'","ip":"41.220.233.110","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async CareerGuidanceSession.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async CareerGuidanceSession.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.service.js:45:44)\n    at async listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.controller.js:6:46)","timestamp":"2026-09-07 12:22:30","url":"/api/v1/senior-secondary/career-guidance","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/career-guidance","requestId":"53eb74f6-a57a-4259-83d0-fef2ef26c3bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-07 12:22:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":262.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/career-guidance/stats","requestId":"9a8eca1a-4097-4ccb-a61c-f55b8ff9ec0f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/career-guidance","navId":"1788772945232-653573","text":"Career Guidance"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/pathways","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","href":"/dashboard/senior/career-guidance","navId":"1788772945232-653573","text":"Career Guidance","to":"/dashboard/senior/career-guidance"},"durationMs":484,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/pathways","navId":"1788772945232-653573","to":"/dashboard/senior/career-guidance"},"durationMs":499,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/career-guidance"},"durationMs":318.6,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e7e13c4e-4913-4ee1-8f50-4e6e1e317778","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{"limit":20,"page":1},"error":"Unknown column 'counselor.photoUrl' in 'field list'","ip":"41.220.233.110","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async CareerGuidanceSession.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async CareerGuidanceSession.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async Object.listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.service.js:45:44)\n    at async listSessions (/home/aereuxky/cbcsms-backend/src/modules/senior-secondary/career-guidance.controller.js:6:46)","timestamp":"2026-09-07 12:22:31","url":"/api/v1/senior-secondary/career-guidance","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/senior-secondary/career-guidance","requestId":"79b7fab1-468a-483c-8339-5695540b385a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-07 12:22:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/senior-secondary/career-guidance/stats"},"durationMs":585.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/senior-secondary/career-guidance"},"durationMs":373.2,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"103aca63-8f8a-4c5e-b809-f4725eab283c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/senior/elective-access","navId":"1788772947725-681868","text":"Elective Access"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/career-guidance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/career-guidance","href":"/dashboard/senior/elective-access","navId":"1788772947725-681868","text":"Elective Access","to":"/dashboard/senior/elective-access"},"durationMs":63,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/senior/elective-access","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/career-guidance","navId":"1788772947725-681868","to":"/dashboard/senior/elective-access"},"durationMs":86,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/senior/elective-access","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6c42a9ed-1333-4883-8261-3e72141ef97c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":40.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"3d42c5a2-4a5e-433c-b82b-899cc716e774","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:22:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/fee-dashboard","navId":"1788772955329-862727","text":"Fee Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/senior/elective-access","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/elective-access","href":"/dashboard/finance/fee-dashboard","navId":"1788772955329-862727","text":"Fee Dashboard","to":"/dashboard/finance/fee-dashboard"},"durationMs":70,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/senior/elective-access","navId":"1788772955329-862727","to":"/dashboard/finance/fee-dashboard"},"durationMs":118,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":320.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.81,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ed1baa06-0e1e-453d-a80d-8304c7c1386d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/payroll","navId":"1788772965485-873233","text":"Payroll"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/fee-dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","href":"/dashboard/payroll","navId":"1788772965485-873233","text":"Payroll","to":"/dashboard/payroll"},"durationMs":711,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","navId":"1788772965485-873233","to":"/dashboard/payroll"},"durationMs":711,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/fee-dashboard","navId":"1788772965485-873233","to":"/dashboard/payroll"},"durationMs":736,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":82.97,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8c1ad532-eaeb-4dd1-9fb0-2df873e8119d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":173.61,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/runs","requestId":"bbdbe6b5-3b9e-4c6c-92eb-e1e5327b571e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":264.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/payroll/summary/9/2026","requestId":"af960dce-a3f5-444f-9a3d-4a9c0f0516c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/runs"},"durationMs":436,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/payroll/summary/9/2026"},"durationMs":510.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:22:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"977ec716-13e0-40e3-99ee-b5f9555ee684","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:22:51","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:23:00"}
{"durationMs":163.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"43e04984-de71-4951-86b1-eeccc636bfc9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:23:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":174.7,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a217124b-da85-4b91-b709-af9efddb9d63","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:23:04","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":424.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:23:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":428.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:23:05","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4b86989f-da60-4a3c-80ba-284ccd799a4d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:23:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/kra-compliance","navId":"1788773020006-788816","text":"Overview Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/payroll","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:23:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","href":"/dashboard/finance/kra-compliance","navId":"1788773020006-788816","text":"Overview Dashboard","to":"/dashboard/finance/kra-compliance"},"durationMs":725,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:23:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","navId":"1788773020006-788816","to":"/dashboard/finance/kra-compliance"},"durationMs":725,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:23:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/payroll","navId":"1788773020006-788816","to":"/dashboard/finance/kra-compliance"},"durationMs":747,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:23:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":42.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9e36a056-8130-451d-a9bf-0d746664cd31","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:23:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":469.74,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/kra-compliance/dashboard","requestId":"629f3c92-5f12-4ab4-aaf2-5c2fb2b49530","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:23:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/kra-compliance/dashboard"},"durationMs":734.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:23:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e135a175-c9d4-48a3-9167-041ee83fd497","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:23:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:24:00"}
{"durationMs":111.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b0a96d81-bade-40a5-9c6f-56050ec35d59","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:24:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":105.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a88059a0-4d8b-4c7c-8ea1-1e3b535243be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:24:05","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":488.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:06","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":487.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:06","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.34,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fc083e1c-1537-4253-b49d-71a5a7d01354","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:24:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":397.15,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"454e41a1-5f81-412e-8200-5753c223235b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:24:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":523.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"68767b70-6b84-4359-8f23-2adac3c3142e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:24:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":567.89,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"2def52a1-0ff7-4307-8fe7-4ca3191cc4f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:24:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":599.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"3d013776-3b19-4972-8763-8e6c6a97f2a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:24:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":256.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"a72f3d0d-82f1-4906-b4b0-7dfb696325a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:24:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":527.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"29f8dec4-3b4f-4667-b085-d6dad91ec98b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:24:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":439.08,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"a72c7c1b-5095-47f2-bafd-4cfa48b68779","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:24:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":558.88,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"c08d9901-3797-4bd0-a072-da3d3ab413e6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:24:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788773046633-632486","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/kra-compliance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/kra-compliance","href":"/dashboard","navId":"1788773046633-632486","text":"Dashboard","to":"/dashboard"},"durationMs":70,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/kra-compliance","navId":"1788773046633-632486","to":"/dashboard"},"durationMs":100,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d400098f-2c6d-4299-971a-c12ce6f4e74e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:24:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1078.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1171.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1173.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1174.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":1176.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1207.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1208.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1209.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:24:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"10c4b573-e9d5-43da-bcf7-a9e676c5c744","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:24:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 12:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 12:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 12:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 12:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:25:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"65cfddcb-7e29-4920-8812-382fd892a5ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:02","userId":null}
{"durationMs":74.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"325fbcbc-1ddc-4a94-a4ef-ceabb1919ac7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:25:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":85.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"40adf56b-ee2f-4311-9c3e-450a355f62a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:25:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":914.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":917,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cd8ed9d8-22d8-4f42-8d15-058ffb946b27","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"d9ca91dc-93ce-42b7-b003-dcb05027397c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":314.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.29,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"564f3c0c-1d6c-4c7e-bf28-cd5066a4c1ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":92.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"af3f99b7-5e58-4427-a8ff-b2680dfcf8ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":154.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"f046f7da-f59c-4ef0-af81-b8edb41e7dbe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":133.7,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"b24d5557-4a12-40f1-8a8b-cddfbf9b4007","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":186.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"273cfd0e-e8fc-4a56-9062-09b5b56b4820","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/students","navId":"1788773111397-676089","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/students","navId":"1788773111397-676089","text":"Students","to":"/dashboard/students"},"durationMs":103,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788773111397-676089","to":"/dashboard/students"},"durationMs":167,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":346.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":448.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":450.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":680.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c663513d-16a2-4e06-8883-7234739a0ec0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":99.53,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/promotions","requestId":"d3de44a3-fb7f-41f1-af35-458db835d398","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":93.23,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/years","requestId":"1cb16cbb-26e4-41df-8543-73652fcd7370","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.82,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/promotions/stats","requestId":"5a96c608-5d7d-4452-92b5-7e7ac80cae96","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":129.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"0e3105ae-3cda-4c0f-b9ab-b411ea50a097","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:30","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Promote Students","name":null,"type":null},"durationMs":54,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/years"},"durationMs":364.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/promotions"},"durationMs":365.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/promotions/stats"},"durationMs":366.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":399.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:25:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b66b274e-23d3-4a34-963a-3e50e1fc390b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:25:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:26:00"}
{"durationMs":90.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9516ac43-86ff-4db4-8984-8d0ee62b512f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:26:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"dd2974f2-769b-4a59-ab7d-c614d8f371c9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:26:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":358.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:26:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":357.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:26:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.89,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"424cf0d3-a087-4ea0-9e47-df35c84cfc48","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:26:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":239.67,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"48e71b7b-42aa-4ea4-b2b9-bde0bb215418","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:26:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":358.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students","requestId":"cbe47a9c-fcad-4232-88f4-1ba78fc30a57","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:26:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"ID Cards","name":null,"type":null},"durationMs":20,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:26:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.23,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6df72fe2-a4a8-4378-b884-ebe7aebd2dfa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:26:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":490,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:26:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":648.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:26:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b8221bac-af1a-44bd-ae11-c3c7a6222ae6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:26:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":76.53,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10&status=TRANSFERRED","requestId":"d3e9254f-103c-4669-9f67-cc67025e20db","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:26:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"e98590a4-c672-42ee-bcb5-8720549910bf","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:26:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Transferred","name":null,"type":null},"durationMs":71,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:26:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":331.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:26:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":365.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:26:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f74eaf08-9213-45bf-8e43-2db1f2813e49","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:26:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"fd7ed69f-f5cb-4aea-a3fe-6a72352c02da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:26:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":123.57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10&status=GRADUATED","requestId":"df49d7fc-582e-48b6-bda5-c083ad584f1d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:26:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Alumni","name":null,"type":null},"durationMs":62,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:26:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":452.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:26:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":456,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:26:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e4a6ef7e-3dc7-4d45-b73e-847516b128ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:26:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":176.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"bc69f5ce-7a7f-4e17-a432-ff8b7850a13e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:27:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":412.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"06b900e9-9e6d-4c11-8e85-4057972bc5e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":394.82,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"3932f52d-d04e-4849-ba78-91a55d253bca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:27:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":428.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"b56d3e14-c4bd-4104-b99e-5868a8f328c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:27:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788773215333-821716","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","href":"/dashboard","navId":"1788773215333-821716","text":"Dashboard","to":"/dashboard"},"durationMs":125,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/students","navId":"1788773215333-821716","to":"/dashboard"},"durationMs":197,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":470,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":30.23,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"60248508-7b3c-491c-b92f-a04db04a85cb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:27:00"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":691.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":693.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":694.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"28f8e206-b8d3-42c0-aafb-0f1351725269","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":88.89,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c0ba6c58-87c4-40ea-b588-746639be3047","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:27:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.97,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d055db08-48be-4408-ba89-08fc86c6affc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:27:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":363.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":363.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"14e4ae41-36fc-402d-975d-7f871673c598","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":125.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"d6ab76b5-1c7f-416c-a61f-e77fd3060a98","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":291.65,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"ebdc7c69-aad5-4ad9-a8f8-4de33a6e6c0e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:27:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":327.17,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"0747b6a6-d1e4-4007-9729-e93685181080","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":403.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"fd7888bb-67b2-4d8b-b3a2-2fcd9c07ff0a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:27:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":477.18,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10","requestId":"e120aeed-1b6b-40c2-bc25-23e230ce9544","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:27:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/assessments/exams","navId":"1788773231811-616575","text":"Exams"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/assessments/exams","navId":"1788773231811-616575","text":"Exams","to":"/dashboard/assessments/exams"},"durationMs":109,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788773231811-616575","to":"/dashboard/assessments/exams"},"durationMs":154,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":341.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2144f409-dd5d-45a5-902b-1424574e77fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":697.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":699.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":699.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":765.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:17","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.99,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1e81b5a4-30a6-4bca-ae98-ebaacc029259","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:17","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Create Assessment","name":null,"type":null},"durationMs":67,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9b0385e0-2d9d-4d04-a519-9c80928e6937","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788773265527-155310","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/assessments/exams","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","href":"/dashboard","navId":"1788773265527-155310","text":"Dashboard","to":"/dashboard"},"durationMs":121,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/assessments/exams","navId":"1788773265527-155310","to":"/dashboard"},"durationMs":191,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.82,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"39767e92-7306-4f5a-b193-e910bcd180d0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":34.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/banks","requestId":"4a0246ef-1858-4831-ae99-ccbacfd4978c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:56","userId":null}
{"durationMs":143.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"f4edf390-4f0b-4080-a40c-76d0b06b1570","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/payments","navId":"1788773271413-73972","text":"Payments"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/finance/payments","navId":"1788773271413-73972","text":"Payments","to":"/dashboard/finance/payments"},"durationMs":708,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788773271413-73972","to":"/dashboard/finance/payments"},"durationMs":708,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788773271413-73972","to":"/dashboard/finance/payments"},"durationMs":729,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:56","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.12,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"24570e66-4845-423f-ac0f-065ddcff1b05","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:56","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":701.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/invoices?studentId=","requestId":"474d205b-f22f-4159-858a-e53634010f16","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/banks"},"durationMs":317.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":407.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.41,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e174104c-0056-44a7-b289-a6bec2aa5cba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/invoices"},"durationMs":1291.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:27:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.77,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c174c367-205f-416c-a272-fa078ee9e734","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:27:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:28:00"}
{"durationMs":77.3,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7050ee19-639d-4356-9a70-b03f365db1f0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:28:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":92.33,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"808d2222-4070-463a-b994-4fd0b09dd9ef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:28:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":337.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:28:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":350.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:28:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f094a5e8-d060-4d2a-ab7f-0f95bd64d2d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:28:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":89.51,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/finance/payments?bankVerificationStatus=PENDING_VERIFICATION,UNVERIFIED&limit=100&sortBy=createdAt&sortOrder=asc","requestId":"58cef2a4-1bb0-44ff-9510-8133535f8503","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:28:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Unverified Deposits","name":null,"type":null},"durationMs":54,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:28:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/finance/payments"},"durationMs":352.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:28:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":55.08,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5b6b3750-5772-4c82-8c90-6fe160865fe9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:28:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Payment Settings","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:28:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.58,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2db8b872-728b-4ee3-b9f3-48ec904b7172","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:28:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:29:00"}
{"durationMs":82.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/banking/details","requestId":"8fad435d-e627-4a1f-9c96-ccbd1757d111","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":82.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"04386a93-03f2-4b1b-87f6-36867b9f5f59","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":95.3,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/payment-settings","requestId":"24204238-7250-46f3-bcd6-573ca0f16b3a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Unknown column 'FeePaymentRequest.method' in 'where clause'","ip":"41.220.233.110","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.select (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async FeePaymentRequest.findAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1140:21)\n    at async Promise.all (index 1)\n    at async FeePaymentRequest.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async exports.listTransactions (/home/aereuxky/cbcsms-backend/src/modules/mpesa/mpesa.service.js:586:48)\n    at async exports.listTransactions (/home/aereuxky/cbcsms-backend/src/modules/mpesa/mpesa.controller.js:52:50)","timestamp":"2026-09-07 12:29:06","url":"/api/v1/mpesa/transactions?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":148.11,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/mpesa/transactions?page=1&limit=20","requestId":"6b9a36e1-6a07-47cd-a43f-3cf712f0b4a4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-07 12:29:06","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/finance/mpesa","navId":"1788773341814-235911","text":"Payment Methods"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/payments","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","href":"/dashboard/finance/mpesa","navId":"1788773341814-235911","text":"Payment Methods","to":"/dashboard/finance/mpesa"},"durationMs":73,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/payments","navId":"1788773341814-235911","to":"/dashboard/finance/mpesa"},"durationMs":135,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/banking/details"},"durationMs":333.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":345.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/payment-settings"},"durationMs":359.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/mpesa/transactions"},"durationMs":416.9,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:07","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fb4a9353-0a36-42e4-89fe-c54a68c256c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Unknown column 'FeePaymentRequest.method' in 'where clause'","ip":"41.220.233.110","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error\n    at Query.run (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async MySQLQueryInterface.rawSelect (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/dialects/abstract/query-interface.js:434:18)\n    at async FeePaymentRequest.aggregate (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1277:19)\n    at async FeePaymentRequest.count (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1306:20)\n    at async Promise.all (index 0)\n    at async FeePaymentRequest.findAndCountAll (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/sequelize/lib/model.js:1322:27)\n    at async exports.listTransactions (/home/aereuxky/cbcsms-backend/src/modules/mpesa/mpesa.service.js:586:48)\n    at async exports.listTransactions (/home/aereuxky/cbcsms-backend/src/modules/mpesa/mpesa.controller.js:52:50)","timestamp":"2026-09-07 12:29:07","url":"/api/v1/mpesa/transactions?page=1&limit=20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.58,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/mpesa/transactions?page=1&limit=20","requestId":"b9f7d5f4-354c-414a-bcf4-68e7708bff82","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-07 12:29:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":62.88,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"064d296a-a0ee-4f3a-a488-58b040f33202","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.07,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e40d46b7-041e-4d6e-a6c2-f52fcc24cf5d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/mpesa/transactions"},"durationMs":309.2,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":342.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":358,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"029e8483-0e1b-4c1b-ab76-3de7275a466a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":93.51,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/payments/mpesa/callbacks","requestId":"0f5d0d5f-f60f-4abd-95c5-5d1feaf2dfd2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Callbacks & Failed Payments","name":null,"type":null},"durationMs":31,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/payments/mpesa/callbacks"},"durationMs":385.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.72,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ebc59a08-f5bb-4572-87b9-25e2333f24c9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":159.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"646bb2be-15dd-403e-9123-7b86bdbd5fa0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":482.78,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"534a9d11-7d0d-4ea2-af5b-1d0e36e3857a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":556.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"11a5d1b7-3dfe-47e5-bb50-69f181254ead","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":517.29,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"8514f619-fbbd-4002-853e-26393c946f09","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":482.64,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"9c4fb8b0-27cf-4dee-989f-7bec55ab3530","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":558.83,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"d69b7ff0-108f-4e05-b19a-d6d805bbaf3b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":554.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"107cc34a-d8eb-45f6-8b80-ff17bb050a9b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":537.29,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"35ec9c35-9d90-44c4-aa1e-0894a0f3234d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788773357652-976860","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/finance/mpesa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/mpesa","href":"/dashboard","navId":"1788773357652-976860","text":"Dashboard","to":"/dashboard"},"durationMs":94,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/finance/mpesa","navId":"1788773357652-976860","to":"/dashboard"},"durationMs":191,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":516.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.53,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4e0b1e6b-4944-4885-9eb7-3ea535b8c630","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":802.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":815.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":819.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":820.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":836.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":837.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":839.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:23","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.29,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4cd3d4e1-1aea-4aa6-ab52-2cddbadba0ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.92,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"4b0d1a9f-fe33-4677-af43-d807d69a0466","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":45.05,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"221d2fef-35be-4700-94d7-2c337f477422","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/attendance","navId":"1788773360691-370001","text":"Attendance"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/attendance","navId":"1788773360691-370001","text":"Attendance","to":"/dashboard/attendance"},"durationMs":92,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788773360691-370001","to":"/dashboard/attendance"},"durationMs":114,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":341.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":343.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.68,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ba609598-118b-42cc-9533-e55c0f8c352b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b72c5453-c2fd-4d62-839d-ea06390d52f4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.16,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"95b47e7d-4be2-4891-87f5-340d8f0533de","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":88.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?date=2026-09-07","requestId":"9aaed7ef-9197-4cd1-920a-fc1464ca7ba1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"History","name":null,"type":null},"durationMs":38,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":313.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":323.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":358.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Reports","name":null,"type":null},"durationMs":46,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":33.68,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"550cd872-8f32-43f6-8aa1-c0dfeda324a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"16e3c909-3dcb-4624-94d0-e6500f3e7422","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":54.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"7cd19c4d-a997-4da7-937c-6066dc0c458f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":316.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":319.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.16,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5069785c-c759-47fc-833e-6562e4fb0aef","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":35.78,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"0e1b0c8c-fcd9-4371-ada5-ba9e0683e5fa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.81,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"20c0e970-5492-4748-8885-5e0cf189d11a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Roll Call","name":null,"type":null},"durationMs":36,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":295.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":300.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:38","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.53,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e996df8c-87a6-4118-9d4d-b1d134075f66","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788773374962-679160","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/attendance","href":"/dashboard","navId":"1788773374962-679160","text":"Dashboard","to":"/dashboard"},"durationMs":92,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/attendance","navId":"1788773374962-679160","to":"/dashboard"},"durationMs":157,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a3203b38-5892-4969-a624-11c200b4c97b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":38.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"aad32b03-49ff-4a88-976f-6fbe5c7bbc83","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.3,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"957945de-4a96-4528-8e1f-836ee6a5d811","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":116.88,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"83718a0f-98bf-42d2-8404-21b700b06817","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":111.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"e8609d32-162c-46d7-833f-705c7332c251","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":232.54,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10","requestId":"2f1a77ed-6cd6-4df8-bd14-058dbf2f4624","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":305.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments","requestId":"12cdd407-fe3d-45a6-b576-08aa840571ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":256.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"7c8650d8-a20f-436a-9ebb-bf6c01998726","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":532.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"e257b343-c7fa-43f2-ac41-4cda0fa87466","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/cbc/report-cards","navId":"1788773378443-294553","text":"Report Cards"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/cbc/report-cards","navId":"1788773378443-294553","text":"Report Cards","to":"/dashboard/cbc/report-cards"},"durationMs":103,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788773378443-294553","to":"/dashboard/cbc/report-cards"},"durationMs":153,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":301.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":312.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":388.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":412.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":617.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":618,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":586.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:43","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bde541b7-f455-4648-8f5b-22efc4ea3ea5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:43","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":879.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:44","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5e4f9e12-d7d6-4440-b39a-88fe55d3c715","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:44","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":96.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts7200yu8bcnrp0e2n77/cmp8gtpme00d68bcnq5m8mk8x","requestId":"d3a54719-5071-432c-bee5-7053fb7901f3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:29:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":892,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts7200yu8bcnrp0e2n77/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":352.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.23,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dbf9e899-4137-421d-b647-b6558d886762","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:54","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":499,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:29:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.61,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9dedd8a6-54cc-4411-a2ad-faa20d20488a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:29:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 12:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 12:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 12:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 12:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:30:00"}
{"durationMs":157.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts8z00za8bcnvoykm2o5/cmp8gtpme00d68bcnq5m8mk8x","requestId":"07fc20fa-077d-4ff6-b038-72fbf5573d28","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:30:00","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":868,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts8z00za8bcnvoykm2o5/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":476.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.82,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9c9d74b1-b086-40c7-b8e0-cbb2a902e182","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:30:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d28c826e-beb1-492a-a26e-e1c6fa876d5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:30:02","userId":null}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":411,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:03","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":27.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9c073305-0a2b-4667-bbc8-060ea12a15ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:30:03","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":117.58,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"99fc7383-69da-4245-915b-814ee6be814d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:30:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":125.58,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1d244efe-1b05-409a-8279-b8e10837aebb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:30:07","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":409.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":435.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.2,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b0618909-fa9a-4bdc-8b38-27342f01d473","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:30:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":96.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards/cmp8gts8000z28bcn30vxv7cc/cmp8gtpme00d68bcnq5m8mk8x","requestId":"6acd41d8-a490-45b2-a169-aeb32dc8895a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:30:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":907,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards/cmp8gts8000z28bcn30vxv7cc/cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":347.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:26","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f2b7a824-abcc-49b1-bd52-27af7d38b8b6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:30:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Close","name":null,"type":"button"},"durationMs":514,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fe56b300-c92c-4c05-b3a3-2a1b9a0db221","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:30:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r3de:-trigger-customize","label":"Customize & Preview","name":null,"type":"button"},"durationMs":9,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"68ce54ed-df66-4951-819b-77e5942e48bd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:30:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":184.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"b2ef47f2-e0f3-4ff9-ac3d-9a709814e548","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:30:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788773444272-433192","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/cbc/report-cards","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/cbc/report-cards","href":"/dashboard","navId":"1788773444272-433192","text":"Dashboard","to":"/dashboard"},"durationMs":115,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/cbc/report-cards","navId":"1788773444272-433192","to":"/dashboard"},"durationMs":190,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:49","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":165.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"75eaf68f-e7d8-4f33-b916-7c48c8fce107","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:30:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":340.29,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"7eaca008-8103-47cf-abaa-522797a182b0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:30:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":375.92,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"54c37083-8c61-453a-8e0f-6989b246380a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:30:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":371.43,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"14adc12a-4e3d-4c46-be9f-da6b4af1791f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:30:49","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":1119,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":1248.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1249.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":1259.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:50","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0f45da3b-4b6d-4923-b02f-0e2b6b2d1f41","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:30:50","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/reports","navId":"1788773451770-405133","text":"Reports"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard/reports","navId":"1788773451770-405133","text":"Reports","to":"/dashboard/reports"},"durationMs":393,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","navId":"1788773451770-405133","to":"/dashboard/reports"},"durationMs":411,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:30:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":13.85,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d390d7de-aeb3-472d-9a7c-a060f09d9d7c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:30:57","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:31:00"}
{"durationMs":193.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"06820633-7517-440b-b77f-0cc5483cc7c1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:31:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":201.33,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"168de5c8-28a4-4a11-9794-4a94e424f040","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:31:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":501.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:31:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":501.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:31:09","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"321918c0-e9e6-4974-8fa7-4d0412ffe986","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:31:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:32:00"}
{"durationMs":191.78,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"36ad5080-9e26-49f3-a51e-9e47c91a3443","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:32:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":198.68,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"7d752555-07e8-4642-8e3a-94353a78156c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:32:08","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":502.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":505.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0453be4a-a697-4f00-9e89-63329af2ba65","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/inventory","navId":"1788773534798-107299","text":"Inventory"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/reports","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/reports","href":"/dashboard/inventory","navId":"1788773534798-107299","text":"Inventory","to":"/dashboard/inventory"},"durationMs":677,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/reports","navId":"1788773534798-107299","to":"/dashboard/inventory"},"durationMs":677,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/reports","navId":"1788773534798-107299","to":"/dashboard/inventory"},"durationMs":699,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":229.3,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f0e3f9d9-ae91-4a16-9b8a-69c5efb29ba0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":651.55,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?limit=10000&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"233bafd7-cbd1-493e-8119-16ab19475d16","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":688.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/transactions?limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"6a8a00d6-a417-4056-89b4-b733c708e4e5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":669.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?lowStock=true&limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"18d04da2-4430-4397-b6f5-f7ae3ade00cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":725.65,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/stats?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"1654cf29-7875-4298-928a-5d1d242e42c4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":758.82,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?limit=5&sortBy=createdAt&sortOrder=DESC&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"8c16f3ff-0c97-4188-9d26-59fa4bae9b73","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/items"},"durationMs":980.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/transactions"},"durationMs":981.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/items"},"durationMs":982.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/stats"},"durationMs":986,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/purchase-orders"},"durationMs":1014.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.64,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b21f169f-a425-439e-8097-f0022ca03549","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":83.65,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/departments?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"6db76ad9-85a5-4f69-bf1b-5dd184ff8244","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:23","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Items","name":null,"type":null},"durationMs":83,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/departments"},"durationMs":345.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:24","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"55cea2af-8e69-406b-bccb-f3c73cd0c889","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:24","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Stock Level","name":null,"type":null},"durationMs":45,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:25","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7df82f8e-7d86-4490-ad2f-791730b1a328","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:25","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":300.6,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/dashboard","requestId":"7749d589-7495-480f-9a62-39253af63460","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/transport","navId":"1788773546444-284044","text":"Transport"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/inventory","href":"/dashboard/transport","navId":"1788773546444-284044","text":"Transport","to":"/dashboard/transport"},"durationMs":478,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/inventory","navId":"1788773546444-284044","to":"/dashboard/transport"},"durationMs":505,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c993f89b-a6bd-43a9-8dbd-8934ea5db9f6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/transport/dashboard"},"durationMs":576.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5b90e00f-54b7-4eaf-95bd-1d44dec630be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.11,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/vehicles?page=1&limit=20","requestId":"e3ff0b70-157c-42f5-8d06-ecbd09a45f60","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:35","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Vehicles","name":null,"type":null},"durationMs":52,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/transport/vehicles"},"durationMs":374.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":15.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9b57313a-7ef9-42d4-bd1f-d64a936d2b61","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":50.88,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/routes?page=1&limit=20","requestId":"dc4c0caf-0f38-4820-bcfc-a77fec2aaa4f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Routes","name":null,"type":null},"durationMs":20,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/transport/routes"},"durationMs":330.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:37","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"38983dd4-def5-4fa9-b803-c594069d6ff6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:37","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":61.3,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/meals/plans","requestId":"a53f82d0-81b0-43f0-857f-7efef15b207a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":191.99,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/meals/dashboard","requestId":"658280da-12e5-43a2-a518-ae68786291ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/meals","navId":"1788773556217-571189","text":"Meals"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/transport","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/transport","href":"/dashboard/meals","navId":"1788773556217-571189","text":"Meals","to":"/dashboard/meals"},"durationMs":462,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/meals","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/transport","navId":"1788773556217-571189","to":"/dashboard/meals"},"durationMs":499,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/meals","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/meals/plans"},"durationMs":340.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.94,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c76cc1f3-6709-4bbc-8c17-58c40088b012","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:41","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/meals/dashboard"},"durationMs":449.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.85,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6b467865-1fc8-4164-9613-68ab2770b669","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:42","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":58.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/streams","requestId":"465bd22b-c17c-4041-8e5a-33d45b9598d7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":74.89,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/grade-levels","requestId":"5add18e9-b177-4fb9-a19d-c6ec8462415c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":65.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/terms","requestId":"5c70ed49-932f-414e-a705-99bdeddb7a2d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:32:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":91.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/meals/assignments?page=1&limit=20","requestId":"cfd2dac3-f796-4c33-afd0-3cee1633914d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":47.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/meals/assignments?termId=cmp8gtpme00d68bcnq5m8mk8x&page=1&limit=20","requestId":"f749fb58-057f-4ba3-bd96-3e43f8adaf1f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Meal Assignments","name":null,"type":null},"durationMs":64,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/meals","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/streams"},"durationMs":316.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academic/grade-levels"},"durationMs":343.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/terms"},"durationMs":344.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/meals/assignments"},"durationMs":374.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/meals/assignments"},"durationMs":388.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.77,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"22e8f987-ecba-4c0e-96ca-2dce3bda928d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":165.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/items?page=1&limit=8","requestId":"b7885744-ad29-4d88-aab8-ffdd95355760","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":193.84,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/uniforms/dashboard","requestId":"98693ea3-b164-45c6-90a8-dc1e9526fe6d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:47","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/uniforms","navId":"1788773562847-275942","text":"Uniforms"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/meals","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/meals","href":"/dashboard/uniforms","navId":"1788773562847-275942","text":"Uniforms","to":"/dashboard/uniforms"},"durationMs":407,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/meals","navId":"1788773562847-275942","to":"/dashboard/uniforms"},"durationMs":431,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.6,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d6a500f4-e041-4d0e-b1ab-d918b0fc05a0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/uniforms/items"},"durationMs":410.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/uniforms/dashboard"},"durationMs":444.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:32:48","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":12.45,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"30019199-81e9-44e1-8b0d-e5dfa897b58a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:32:48","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:33:00"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":24,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e6051589-d7e0-47bc-931d-53835da3aaad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:33:01","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":92.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"61b4365c-1ab8-4565-8be5-d1b13549393c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:33:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":89.66,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0060fcd9-1011-49db-8b31-1ad7c85bd34a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:33:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":342.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":345.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"df4f76ef-5522-49b8-88f1-d824202c2e2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:33:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":232.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/transactions?limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"a9679918-1efe-4b58-b039-ae5a11d6c048","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:33:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":250.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/stats?schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"447bbfcb-3337-471e-bfed-7e0ee2906519","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:33:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":250.6,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/purchase-orders?limit=5&sortBy=createdAt&sortOrder=DESC&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"b762f7f0-19a1-4c01-a764-2cec5e9605d9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:33:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":374.15,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?lowStock=true&limit=10&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"cde60f0b-83aa-4059-8bdb-f67820451665","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:33:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":375.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/inventory/items?limit=10000&schoolId=cmp8gtb7j00008bcnd6vyf567","requestId":"f68b615c-7a5c-44f1-9e38-813f33c03044","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:33:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/inventory","navId":"1788773604256-419993","text":"Inventory"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/uniforms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/uniforms","href":"/dashboard/inventory","navId":"1788773604256-419993","text":"Inventory","to":"/dashboard/inventory"},"durationMs":57,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/uniforms","navId":"1788773604256-419993","to":"/dashboard/inventory"},"durationMs":83,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/transactions"},"durationMs":523.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/stats"},"durationMs":525.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/purchase-orders"},"durationMs":526.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/items"},"durationMs":680.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/inventory/items"},"durationMs":689,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.33,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6af7bc4d-b426-401a-8385-eb7e0ccad54b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:33:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":247.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"c830c07e-1626-40ea-8891-271934b59278","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:33:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":335.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/history?limit=1000","requestId":"e2e47a7f-73c7-42d6-8394-bf5e4a0bf181","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:33:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/communication/sms","navId":"1788773614171-861077","text":"SMS"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/inventory","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/inventory","href":"/dashboard/communication/sms","navId":"1788773614171-861077","text":"SMS","to":"/dashboard/communication/sms"},"durationMs":386,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/communication/sms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/inventory","navId":"1788773614171-861077","to":"/dashboard/communication/sms"},"durationMs":405,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/communication/sms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.82,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3693b2d7-844b-428d-bcf3-a62bffccd3ca","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:33:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"body":{},"error":"Failed to check balance: Request failed with status code 401","ip":"41.220.233.110","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error: Failed to check balance: Request failed with status code 401\n    at Object.getBalance (/home/aereuxky/cbcsms-backend/src/services/SmsService.js:181:11)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async getSmsBalance (/home/aereuxky/cbcsms-backend/src/modules/communication/communications.controller.js:51:23)","timestamp":"2026-09-07 12:33:39","url":"/api/v1/communications/sms/balance","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":635.44,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/balance","requestId":"a0334a8d-5730-405b-80b2-256c93ab60da","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":500,"timestamp":"2026-09-07 12:33:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":510,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/history"},"durationMs":620,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":500,"url":"/communications/sms/balance"},"durationMs":932.8,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.65,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d7e1d9e0-c83d-48f3-9d8b-06e8177b6b19","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:33:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r3m1:-trigger-settings","label":"SettingsSettings","name":null,"type":"button"},"durationMs":7,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/sms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:33:46","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6b24c156-ee52-4920-8c9b-36b09a1f0702","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:33:46","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:34:00"}
{"durationMs":104.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2235ed15-6f13-4035-a0c9-23785a87e085","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:34:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":100.51,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d64d52ae-2de7-4ae7-a667-c18ee0e6f1ce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:34:09","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":360.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":359.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/communication/emails","navId":"1788773646107-491762","text":"Emails"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/communication/sms","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.46,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"40c7c064-2000-4f4a-bc5a-1ec0e8238ea3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":138.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/emails/settings","requestId":"249440a5-4d2b-4a29-b9cf-3347702d5f22","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":154.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/emails/history?limit=1000","requestId":"e0c57cb6-0ccc-4c1e-8ec4-827730ab7a81","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/sms","href":"/dashboard/communication/emails","navId":"1788773646107-491762","text":"Emails","to":"/dashboard/communication/emails"},"durationMs":405,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/communication/emails","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/sms","navId":"1788773646107-491762","to":"/dashboard/communication/emails"},"durationMs":417,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/communication/emails","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/emails/settings"},"durationMs":427.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/emails/history"},"durationMs":429.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"489ca7f0-512c-427f-9c3e-28cc547f785d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/communication/whatsapp","navId":"1788773654245-205013","text":"WhatsApp"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/communication/emails","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":16.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e59e9bf5-c68a-4d92-a45f-cdaaf8f63dd9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":69.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b12da6fc-c939-481a-8559-ba5417403bd7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":89.37,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"156d3df3-e850-4ec8-afb2-f2b7323faf7f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":97.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"b3825805-346a-4ebf-be54-b681772e80e5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:34:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":125.29,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/history?limit=1000","requestId":"9633a387-58c3-440f-a4c1-b9fa2099539e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/emails","href":"/dashboard/communication/whatsapp","navId":"1788773654245-205013","text":"WhatsApp","to":"/dashboard/communication/whatsapp"},"durationMs":1885,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/emails","navId":"1788773654245-205013","to":"/dashboard/communication/whatsapp"},"durationMs":1885,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/emails","navId":"1788773654245-205013","to":"/dashboard/communication/whatsapp"},"durationMs":1898,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":367.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":369.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":391.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/history"},"durationMs":404.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":25.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"45814559-8c12-43a0-9f22-bd87d13018d9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":46.67,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"407d8e84-9ac8-4e35-8710-96291fec70ce","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:34:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":346.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"33ebdc70-8631-4592-8aef-1d54be052637","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r3ml:-trigger-settings","label":"Settings","name":null,"type":"button"},"durationMs":6,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3daedbb6-767b-4792-8b09-ba83a07d8df3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Setup WhatsApp","name":null,"type":null},"durationMs":33,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"75365198-4bee-48ca-aa25-3462fc31a22e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:31","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"RECOMMENDEDWhatsApp Cloud APIConnect via Meta's official Cloud API. Reliable, no","name":null,"type":null},"durationMs":22,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:34","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.29,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"70819d35-b795-44bd-8e2e-c44a3ee59956","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:34","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":"radix-:r3n0:-trigger-credentials","label":"Enter Credentials","name":null,"type":"button"},"durationMs":5,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:45","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.43,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b777f526-7841-4d19-83f1-bc3a3117cc06","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:45","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/communication/emails","navId":"1788773692920-985920","text":"Emails"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/communication/whatsapp","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/whatsapp","href":"/dashboard/communication/emails","navId":"1788773692920-985920","text":"Emails","to":"/dashboard/communication/emails"},"durationMs":70,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/communication/emails","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/whatsapp","navId":"1788773692920-985920","to":"/dashboard/communication/emails"},"durationMs":95,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/communication/emails","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:34:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":44.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cfb4a2c1-b2cb-4db7-8884-79628845da07","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:34:58","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 12:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 12:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 12:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 12:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:35:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6c975ce7-d26a-4651-908d-2a846fccfd58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:02","userId":null}
{"durationMs":76.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3759e8d0-b793-4013-96a8-37186a651fb3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:35:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":162.27,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"6262cd18-3ca9-4099-80cd-dfb32b7dab79","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:35:10","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":336.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:35:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":418.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:35:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":18.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eaf6f61d-106a-4a38-bc9c-ef107d79fd59","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":200.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?page=1&limit=20","requestId":"af58d570-8c0d-430d-9307-8ebbb93cbca5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":206.12,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff/stats","requestId":"1aa28591-df4b-4f22-9a05-f6b3adca766b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/staff","navId":"1788773713603-161076","text":"Staff"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/communication/emails","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:35:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/emails","href":"/dashboard/staff","navId":"1788773713603-161076","text":"Staff","to":"/dashboard/staff"},"durationMs":450,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/staff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:35:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/communication/emails","navId":"1788773713603-161076","to":"/dashboard/staff"},"durationMs":494,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/staff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:35:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c8c5d42b-dc20-4f17-84e6-3c00f9d24cc6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff"},"durationMs":557.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:35:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff/stats"},"durationMs":559.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:35:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a7898821-b5d7-4c33-8583-0160df185333","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:19","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":98.35,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff/stats","requestId":"2e2a637c-040d-4110-a5a1-b1cd1353c778","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":276.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?page=1&limit=20&isTeacher=true","requestId":"8598df7f-9381-4b1a-bd92-c1828abcd61a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard/teachers","navId":"1788773723702-944618","text":"Teachers"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/staff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:35:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/staff","href":"/dashboard/teachers","navId":"1788773723702-944618","text":"Teachers","to":"/dashboard/teachers"},"durationMs":371,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/teachers","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:35:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/staff","navId":"1788773723702-944618","to":"/dashboard/teachers"},"durationMs":408,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/teachers","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:35:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff/stats"},"durationMs":349.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:35:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":33.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2fb95202-471e-45f6-85ac-5d94c940fa93","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/staff"},"durationMs":552.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:35:29","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":17.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b03c8f49-89c2-4972-9515-c45e7587bfaa","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:29","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard/teachers","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:35:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/teachers","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:35:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.12,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d8248b0e-5d4a-4782-8939-7a95c09c5b05","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:35","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":11,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:35:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2994bc2c-9026-4539-bcd8-f1a733d907dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:57","userId":null}
{"durationMs":740.59,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"6c7ba3e6-a2a6-44c2-a378-61c9dabf3ca3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:58","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":26,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:35:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.23,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0693edd1-3c55-4d34-87d8-e1f86b63ba8c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:58","userId":null}
{"durationMs":68.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"d74ce581-97b4-4463-b01c-5db443753704","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:59","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":36.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"9d0887fe-5042-47f6-8b93-f422ebe2a22a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:35:59","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":111.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c6c06ddf-5c32-4d8c-9251-6f3b1daa92c9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:59","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":109.91,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"97305db2-895a-4d6f-9f8c-36a1e464d0fb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:59","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":103.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2acbac36-f8b2-4fa9-bbb3-b24ef5df079d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:59","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":23.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"70c07edc-b644-4cee-806b-cc129c40947c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:59","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":42.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"01fc67d3-fb53-4f39-a907-aaec9fb7c897","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:59","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":54.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"0a7a8e79-52eb-411e-997e-904bf4ea9323","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:59","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":44.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"cb378ec4-5300-4099-b75a-ac0d1fab7adc","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:35:59","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":84.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"a0b3399c-a2a0-43d1-9ce9-c2004b84038c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1103.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":360.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":532.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":536.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":538.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":539.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/dashboard/teacher"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":352.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":354.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":358.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":359.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard","navId":null,"to":"/dashboard/teacher"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:00","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":8.51,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6750477d-f0b1-4d2b-aa71-1cc3cd7fd98f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":119.92,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"f000ea74-9ad1-4f77-953c-56c8d46911f9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":27.7,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms/current","requestId":"3239e672-16fa-4c99-902a-b0e5eea1a598","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":139.19,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/students?streamId=cmp8gtppb00dy8bcnm1lpuafg","requestId":"e8175d78-6b18-4b0f-ae15-e5bb86ee60b2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":329.17,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?streamId=cmp8gtppb00dy8bcnm1lpuafg&date=2026-09-07","requestId":"e01aa68b-993f-4c76-81e3-baef0396046c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:36:00"}
{"durationMs":48.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/analytics?streamId=cmp8gtppb00dy8bcnm1lpuafg&termId=cmp8gtpme00d68bcnq5m8mk8x","requestId":"896c3534-50e2-4a42-bb8e-f7236af62295","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":771.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"52de7d64-554c-4270-823b-0de4d72b0fe3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":406.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/timetable?streamId=cmp8gtppb00dy8bcnm1lpuafg&day=Monday","requestId":"fa49a24d-53a5-4681-a092-a3d481451f2f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":441.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/dashboard?streamId=cmp8gtppb00dy8bcnm1lpuafg","requestId":"02f316b0-484e-4fbb-a2dd-6ab81ea5422f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":39.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"b73a8376-9af0-4180-875c-5299d7fb1dfe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:01","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-streams"},"durationMs":341.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-schedule"},"durationMs":384.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/academic/terms/current"},"durationMs":298.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/students"},"durationMs":419,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":583.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/analytics?streamId=cmp8gtppb00dy8bcnm1lpuafg&termId=cmp8gtpme00d68bcnq5m8mk8x"},"durationMs":326,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/overview"},"durationMs":1018.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/timetable"},"durationMs":671.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/dashboard"},"durationMs":704.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":7.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cb943f1b-4da1-4fc1-9647-871b0e4290be","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:01","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/clocking/status"},"durationMs":344.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:36:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":8.57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8fd15e70-f632-4949-8616-759428d5cf23","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:36:02","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":85.31,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"443979a5-6471-4903-b39b-b64aa622a14b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:37:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":93.37,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"0fd70cc6-98fe-4c34-bbd9-386e71bb7074","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:37:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:37:00"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":352,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":351.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"href":"/dashboard/class-teacher","navId":"1788773816527-125778","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/teacher","href":"/dashboard/class-teacher","navId":"1788773816527-125778","text":"Dashboard","to":"/dashboard/class-teacher"},"durationMs":87,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/teacher","navId":"1788773816527-125778","to":"/dashboard/class-teacher"},"durationMs":96,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":6.68,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cc394457-071d-46fb-99f8-0d56e2a63879","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:37:01","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":52.04,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"dd610c09-c330-4d26-a582-bbcdeef9856a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:37:01","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/clocking/status"},"durationMs":299.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":9.82,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8f5a6903-cdb3-4577-a8fa-c210d7944142","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:37:02","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":52.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?streamId=cmp8gtppb00dy8bcnm1lpuafg&date=2026-09-07","requestId":"4810b21c-3339-4f0f-b1b9-ffa00ae965a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:37:08","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"href":"/dashboard/class-teacher/attendance","navId":"1788773823181-653368","text":"Take Attendance Now"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher","href":"/dashboard/class-teacher/attendance","navId":"1788773823181-653368","text":"Take Attendance Now","to":"/dashboard/class-teacher/attendance"},"durationMs":460,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher","navId":"1788773823181-653368","to":"/dashboard/class-teacher/attendance"},"durationMs":496,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":306.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:08","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":11.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3ad48054-3052-4fd4-b4d4-ba708d5da595","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:37:08","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":61.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/my-status","requestId":"4d73d3a9-7419-4388-b19a-d680eed5bad3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:37:17","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":139.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/my-history?limit=20","requestId":"538c248e-7620-4511-91b1-30c3663bfc72","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:37:17","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"href":"/dashboard/class-teacher/clocking","navId":"1788773832995-330429","text":"Clock In/Out"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/attendance","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/attendance","href":"/dashboard/class-teacher/clocking","navId":"1788773832995-330429","text":"Clock In/Out","to":"/dashboard/class-teacher/clocking"},"durationMs":420,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/attendance","navId":"1788773832995-330429","to":"/dashboard/class-teacher/clocking"},"durationMs":552,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/clocking/my-status"},"durationMs":312.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":8.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"47f5be36-8af9-48d6-9a75-8097831b13c2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:37:18","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/clocking/my-history"},"durationMs":396.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:19","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":9.89,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f05abf0a-11c4-4b7f-b0e2-6ec2765808a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:37:19","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":72.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?streamId=cmp8gtppb00dy8bcnm1lpuafg&date=2026-09-07","requestId":"d92cd36b-5f29-40b0-999c-2de0dae66877","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:37:31","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"href":"/dashboard/class-teacher","navId":"1788773846605-729612","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/clocking","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/clocking","href":"/dashboard/class-teacher","navId":"1788773846605-729612","text":"Dashboard","to":"/dashboard/class-teacher"},"durationMs":128,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/clocking","navId":"1788773846605-729612","to":"/dashboard/class-teacher"},"durationMs":208,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":320.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":13.54,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6af6d310-2c6f-4409-8e24-fe847aa7d217","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:37:31","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":101.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/timetables?streamId=cmp8gtppb00dy8bcnm1lpuafg","requestId":"162ec786-ca6f-45d4-889d-efedf9d23f71","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:37:57","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":187.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule","requestId":"bc9bacb2-a6c5-4841-9ddc-45ec512f8a90","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:37:57","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"href":"/dashboard/class-teacher/timetable","navId":"1788773872703-157102","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher","href":"/dashboard/class-teacher/timetable","navId":"1788773872703-157102","text":"Timetable","to":"/dashboard/class-teacher/timetable"},"durationMs":373,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher","navId":"1788773872703-157102","to":"/dashboard/class-teacher/timetable"},"durationMs":399,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/timetables"},"durationMs":361.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:57","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":13.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0278536c-7733-4ce0-aa42-7c8252b046cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:37:57","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/teacher/my-schedule"},"durationMs":434.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:37:58","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":11.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c51cbf5b-ab49-4174-b567-9ebc5744307b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:37:58","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":44.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"94e9dc16-3460-4c25-8630-8da7d8770014","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:38:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":39.08,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"30513363-61cd-48ef-985d-2922878f8060","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:38:00","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:38:00"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":302.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:38:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":302.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:38:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":11.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"eabcdac5-533d-4c04-b8cb-86f30f38c9a1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:38:01","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"id":null,"label":"Class Timetable","name":null,"type":null},"durationMs":35,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:38:02","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":8.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f484a898-ab3f-4bba-9cdc-bdfe9a463ad1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:38:02","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"href":"/dashboard/class-teacher/portfolios","navId":"1788773896950-618442","text":"Student Portfolios"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/timetable","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:38:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/timetable","href":"/dashboard/class-teacher/portfolios","navId":"1788773896950-618442","text":"Student Portfolios","to":"/dashboard/class-teacher/portfolios"},"durationMs":372,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/portfolios","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:38:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/timetable","navId":"1788773896950-618442","to":"/dashboard/class-teacher/portfolios"},"durationMs":390,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/portfolios","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:38:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"durationMs":11.41,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e4418098-72e4-4991-88ef-a6e6113cf569","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:38:22","userId":"cmp8gtjbg00cl8bcn0acvif07"}
{"data":{"from":"/dashboard/class-teacher/portfolios","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:38:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/class-teacher/portfolios","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:38:42","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.31,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"876de4d9-f03d-49b3-a235-617e88122f99","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:38:42","userId":null}
{"body":{"identifier":"finance","password":"[REDACTED]"},"error":"User not found","ip":"41.220.233.110","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: User not found\n    at Object.login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:389:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:34:20)","timestamp":"2026-09-07 12:39:00","url":"/api/v1/auth/login"}
{"durationMs":10.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"1c1b6c78-defe-4cbf-8373-5796e3f6027b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 12:39:00","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:39:00"}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":15,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:39:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":285.7,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:39:01","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.88,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6cc970d1-e3ce-40ac-b5ca-cc56ce26e040","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:01","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":9,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:39:04","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a7027345-9535-49fb-bc4b-995ff32848ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:04","userId":null}
{"body":{"identifier":"finance","password":"[REDACTED]"},"error":"User not found","ip":"41.220.233.110","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: User not found\n    at Object.login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:389:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:34:20)","timestamp":"2026-09-07 12:39:09","url":"/api/v1/auth/login"}
{"durationMs":14.6,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"391ee88c-9714-4c97-85d4-d46291990f42","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 12:39:09","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":32,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:39:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":267.7,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:39:10","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"28e94554-48b4-407e-98d6-73c9c17e0c74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:10","userId":null}
{"body":{"identifier":"finance","password":"[REDACTED]"},"error":"User not found","ip":"41.220.233.110","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: User not found\n    at Object.login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:389:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:34:20)","timestamp":"2026-09-07 12:39:11","url":"/api/v1/auth/login"}
{"durationMs":13.2,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"68d667c1-62a5-49ea-9caf-8a1095b15cbb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 12:39:11","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":18,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:39:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":286.1,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:39:11","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"302e86a8-61e7-4a97-b1d2-37b0c86a6b31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:11","userId":null}
{"durationMs":692.4,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"180510da-d149-4b68-8863-def51d8b7bf2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:51","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":10,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:39:51","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6e839297-ce84-44cc-80d5-f3b95d9e64fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:51","userId":null}
{"durationMs":43.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"1e99171d-f84c-46d7-a80b-be32305e5152","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":41.13,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"0f4d5e89-a33c-4f82-9447-408b85334957","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:39:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":71.19,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"10ce66c8-b21f-4a01-a877-3f26b7d77588","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":64.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"dddab420-ffa9-445f-95cf-ef001d9db462","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":76.78,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"83d112b2-61e4-4842-8da2-8ab0c52d25d5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":31.98,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"ce7eaa03-1c9e-4587-845f-75b8f0d83833","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":47.37,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"76df67f5-e703-4900-b296-1abb22217257","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":38.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"5d9eec34-f605-455c-b300-9a2dac50511c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":40.18,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"f7783e24-cecc-4030-9416-f994a8a62375","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":44.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"4db30100-6fda-45b9-a6ed-11ccaf3ad74d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:51","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":104.38,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"9ae38da5-1a4f-4f62-9ec4-c68180213166","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":977.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":322,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":330.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":486,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":487.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":488.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/guardian"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"from":"/dashboard","navId":null,"to":"/guardian"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":296.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":365.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":366.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":368,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:52","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":9.08,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8c7929ef-90e7-47e7-ae76-04c00f8b9939","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":54.85,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"03198067-77d4-4a41-8f55-24d00323bf99","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":308.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":365.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":300.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:39:53","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":13.26,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2b2d4c0d-9162-475a-908c-005f3e500971","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:39:53","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 12:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 12:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 12:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 12:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:40:00"}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4bbd847-9aeb-411a-8d03-aba426788c80","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:40:02","userId":null}
{"durationMs":74.89,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c723e771-6862-4ae1-8f20-4e289b419fff","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:40:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":68.75,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d1f4a85c-3581-45d3-9f40-3e2f9a209bc2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:40:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":108.2,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"0dfb17f4-d31b-404e-b254-560d2e4d4f6e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:40:52","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":927.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:40:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":929.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:40:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":656,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:40:54","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"durationMs":11.41,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f0222f3e-9fc0-4a08-9bc0-0584a5a2f61e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:40:54","userId":"bc68176f-9825-479f-879f-87e565a6b5ed"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:41:00"}
{"data":{"from":"/guardian","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:41:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/guardian","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:41:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4847ad91-a84c-4669-a5d1-2ff486c3f93f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:13","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:41:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0b0c17de-4a61-4a2a-a842-6c01dcc20f50","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:21","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":22,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:41:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":0.89,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cdd3be87-4eda-4766-b3da-78f59a7483fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:31","userId":null}
{"body":{"identifier":"nurse","password":"[REDACTED]"},"error":"Invalid username or password","ip":"41.220.233.110","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Invalid username or password\n    at Object.login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:426:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:34:20)","timestamp":"2026-09-07 12:41:32","url":"/api/v1/auth/login"}
{"durationMs":1253.87,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"c3bc732c-572f-4a45-b125-499001ca93e2","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 12:41:32","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":1611.2,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:41:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3da73af8-b071-4cf1-a49d-9a759ad44bb4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:33","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":17,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:41:35","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":0.89,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9fa8046b-4c91-4c51-ae5a-a7b904e10dde","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:35","userId":null}
{"body":{"identifier":"nurse","password":"[REDACTED]"},"error":"Invalid username or password","ip":"41.220.233.110","level":"error","message":"API Error:","method":"POST","service":"cbc-sms","stack":"Error: Invalid username or password\n    at Object.login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.service.js:426:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async login (/home/aereuxky/cbcsms-backend/src/modules/auth/auth.controller.js:34:20)","timestamp":"2026-09-07 12:41:35","url":"/api/v1/auth/login"}
{"durationMs":1105.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"5250968c-465a-4c69-894c-ab194ade379e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 12:41:35","userId":null}
{"data":{"method":"POST","status":401,"url":"/auth/login"},"durationMs":1391.5,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:41:36","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.17,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d31ad6ae-3caf-4d90-ad44-7ff61167bb45","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:36","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":18,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:41:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.92,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"98c8b6b0-1e2a-4a25-a7f2-46bb4e70f558","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:39","userId":null}
{"durationMs":826.83,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"1af8a45a-5289-4f94-b113-de0ba9015d13","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:39","userId":null}
{"durationMs":51.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"d691cd68-8c80-41c3-b628-7784608f17bb","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:39","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":62.31,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"039782e4-d0ea-4c21-b63d-9266cf202752","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:41:39","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":161.32,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"adecfecf-49a7-4d92-9a1a-5a50a4f16c71","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:41:39","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":178.47,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"14dcd24a-d82e-4c79-b07a-de6d22b918a3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:41:39","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":156.71,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"7117a945-8256-4e47-9605-72288cb7ad76","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:41:39","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":20.69,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"d962e194-4911-42b3-a665-05ba676f4970","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:39","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":45.8,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"6f04c62e-543b-46d0-a98d-d23294dd17ba","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:39","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":57.9,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"cc5860c8-6044-41df-9bd8-27bc60a957a2","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:39","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":48.61,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"4dc5a16c-fcd5-402c-a30f-0a9f5b8a31d9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:39","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":137.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/records?limit=100","requestId":"614873e9-4da6-4e94-95db-d23b3cbe4f2d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:40","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":166.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/stats","requestId":"6581e499-671f-4812-a517-28854fa12f44","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:40","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":284.79,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/health/vitals?limit=50","requestId":"53dbf0c0-2c9c-4e24-8cb4-943e8f2d7db0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:40","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1163.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":306.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":318.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"from":"/dashboard","href":null,"navId":null,"text":null,"to":"/dashboard/nurse"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"from":"/dashboard","navId":null,"to":"/dashboard/nurse"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/nurse","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":426,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":434.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":474.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":297.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":321.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":325.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":326.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"GET","status":200,"url":"/health/records?limit=100"},"durationMs":398.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"GET","status":200,"url":"/health/stats"},"durationMs":428.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":8.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"691df46a-9f1e-47fd-8319-bd5e3e8069ac","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:40","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"data":{"method":"GET","status":200,"url":"/health/vitals?limit=50"},"durationMs":552.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:41:41","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"durationMs":7.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9d15c3d9-0694-4e9b-8b7e-b7dc0cfe5f71","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:41:41","userId":"cmp8gtoex00cx8bcngulv7q1o"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:42:00"}
{"data":{"from":"/dashboard/nurse","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:42:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard/nurse","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:42:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.99,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1f4cd503-fe44-461c-9edc-d246a64fe3de","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:18","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":11,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 12:42:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.92,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5391056a-7898-40c7-85b6-acfa94be9a15","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:31","userId":null}
{"durationMs":828.83,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"d532127c-d25d-45cc-904e-4b413a6207a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:31","userId":null}
{"durationMs":66.18,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"8178ae1e-cb06-4ea2-ab81-9801cb1dfd0d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":53.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"6dcfc498-839b-42f5-80da-19c5cdb39959","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:42:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":70.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"04ed032c-899c-4058-89ca-fa8f126af03f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:42:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":102.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2a0593ca-0938-4590-b70c-754ee817f9ec","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:42:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":272.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"695f3b9d-b7ce-4a4d-b427-b9b3be08257f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:42:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":253.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"80ad8172-dcbd-41b8-9038-cc7da10d46ed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":212.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"1b432098-a64f-4ed5-874e-8974b4aa7196","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:42:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":131.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"108903a0-063b-4241-a1f9-e6c551386f67","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":244.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"f0b0113f-2962-498b-88c8-a6cde9034b4e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":146.02,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"a5789b3f-7110-4cdc-965e-44f801b8a10f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":239.99,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"795240a4-df1a-4b21-a63e-fd78b312241f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":395.09,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"d7fda38b-965d-4569-a576-94094f9c0289","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":407.4,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"fd28180a-9e4f-4ee7-8e60-a187df547aed","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":317.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"4d4dcc8e-324a-44a5-842a-59af1a667f21","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":428.77,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"22242f2d-3216-42ab-99e9-57b5f56a3d8d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":431.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"91bc0481-09a8-4530-afa1-996350fbc973","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":348,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"56a2bd5f-c644-4b42-a059-4f809e3e643a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":406.57,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"5e197c2c-40b3-403e-b182-498e398b98cd","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1157.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":330.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":307.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":349,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":370.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":616.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":619,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":849.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":725.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":746.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":747.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":754.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":974.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":990.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":821.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":1001.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":1015.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":1137.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":1138.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":24.96,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5d0577b9-a0e0-489c-8901-9f412c5c7dd5","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:42:40","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"289ecb6e-c06e-4efe-a3dc-63e2c2d7442f","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:42:40","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:43:00"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":26,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:43:16","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.25,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"29880ad6-8357-4bd4-86db-5c162792b110","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:43:16","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.08,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"060574ba-5101-405d-977c-e69da3ea8847","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:43:19","userId":null}
{"durationMs":143.15,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"7759c17e-c1d3-439b-bde4-dbee33b2c0df","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:43:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":232.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"22606b19-643e-4a5a-b274-42696e348049","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:43:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":188.31,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/settings","requestId":"0e34f2fc-80c6-469b-bb66-64ca78d20261","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:43:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":200.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"373da4e0-3bce-40c8-8149-35455930c9d1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:43:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":217.34,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/new-arrivals?limit=10","requestId":"6527f840-44a1-4f3e-b6f8-70b7741221ad","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:43:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":273.39,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"cf1df914-3169-4c66-a081-eafd763c1ea3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:43:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":277.42,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/my-loans","requestId":"bcfd1a11-188b-4ed8-b7b6-d2c70a213b18","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:43:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":312.31,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/library/stats","requestId":"c12b515b-eab7-4afd-aa37-0911fbaf0d2d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:43:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Librarian Portal","name":null,"type":null},"durationMs":74,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:43:20","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"02c4aa58-0df8-4b73-962f-029ea9cbba5a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:43:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":395.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:43:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":486.7,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:43:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/library/settings"},"durationMs":495.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:43:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":497.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:43:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/library/new-arrivals?limit=10"},"durationMs":528.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:43:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":549.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:43:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/library/my-loans"},"durationMs":580.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:43:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/library/stats"},"durationMs":601.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:43:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":19.4,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5f772a26-da80-42db-ac4c-ac38fade1ce3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:43:21","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:44:00"}
{"durationMs":150.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f0dee788-36f3-4a8e-a179-06b6249b306c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:44:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":207.88,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f05aa95a-28dd-46c3-823e-182c25e54b3b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:44:20","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":407.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:44:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":470.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:44:22","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"de78d6ae-c7ed-46c6-84cc-09fb4cbfe0f3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:44:22","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":1.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"229ae1d2-4ee0-4a9d-bc67-ed1c75b1f56a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:44:26","userId":null}
{"durationMs":90.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"9a0bb3cb-f673-4312-8899-5a086a73a232","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:44:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":160.51,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e027e62a-e3ab-45b3-91bd-909a876b6dd9","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:44:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":160.41,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f5f92c3b-216b-419f-8b2a-ce5421198086","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:44:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":145.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"9e92ce6a-8011-4a4f-9480-07fb46ba6db6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:44:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":208.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/transport/dashboard","requestId":"c87a6693-b52c-4cfe-9dac-993960cac28b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:44:26","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Transport Manager","name":null,"type":null},"durationMs":39,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:44:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":20.5,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e311e093-0f4a-45cc-b638-be79543c252a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:44:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":339.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:44:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":415.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:44:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":445,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:44:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":468.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:44:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/transport/dashboard"},"durationMs":509.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:44:27","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d34ec400-89f3-4a05-9d11-a42cea0493d8","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:44:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 12:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 12:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 12:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 12:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:45:00"}
{"durationMs":0.96,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ac5e9dab-a159-4ed9-9527-e80a3345a418","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:45:02","userId":null}
{"durationMs":234.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7ea75bec-e82b-4a4c-83cd-9cd32b26ce20","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":205.61,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1d111959-5635-434a-a812-e7fa66d8d2e0","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:27","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":457.6,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":489.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:28","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":26.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee49c5dd-17c0-4842-a6bf-7106c717cac1","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:45:28","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":90.78,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"378c7476-a383-4c24-ba2e-56137b16f4a7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":84.33,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"0ab049f9-c847-4fbb-adba-e545c2175821","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:32","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":51.64,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"73c3bdeb-fe10-45ac-b846-8f255cebb4d6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:45:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":345.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":349.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":355.8,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:33","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.95,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5e4c1ef9-7022-47c4-a307-aa5235745727","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:45:33","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":2.33,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5ff405f-c786-49bd-adf0-7b0f69aca73f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:45:38","userId":null}
{"durationMs":360.14,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"098ad2a2-b2cc-4ad4-83e9-2efe0b51ec1d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":402.52,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"d0658de7-74f2-453f-92ee-3b02611bfd49","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":550.89,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/debt-aging","requestId":"f1b96f66-e2f5-4323-951e-7e87454419de","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":590.61,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"74d73ee2-16af-4bec-b4be-190bc2be587e","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":579.2,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ac123c9b-19e3-411c-bb7c-e721a7eb0280","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":484.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/collection-velocity","requestId":"c4df520b-62dc-4f9f-9ff5-e93b8889193d","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":537.77,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/payment-segments","requestId":"54224365-f6bc-4cbd-981f-e4820ba4a857","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:38","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":330.73,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"9c82f9c9-b45e-414d-8526-7022a97ff9c6","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":311.64,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/analytics/forecast","requestId":"b66e8632-b1c7-4728-b17d-cd94b1bc96d4","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":582.36,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/fees/dashboard","requestId":"7a9a575c-6c7e-44eb-a555-d9fdcd46f1f7","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 12:45:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":"Finance Portal","name":null,"type":null},"durationMs":60,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":14.01,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3690b68a-3100-4bf4-bf05-794dccd63109","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:45:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":706.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":709.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/payment-segments"},"durationMs":921.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":923.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/forecast"},"durationMs":924.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/debt-aging"},"durationMs":926,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":927.4,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":928.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/analytics/collection-velocity"},"durationMs":929.3,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/fees/dashboard"},"durationMs":931.1,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 12:45:39","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":21.06,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b384ed3b-5bc5-46ff-ba22-ae553cf0d636","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:45:39","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 12:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 12:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 12:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 12:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:50:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1110e11-e31b-45eb-86c2-2b98931d98d0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 12:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 12:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 12:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 12:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:55:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d321d58f-4e2c-4dca-83ae-a339d722fc58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 12:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 12:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 13:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 13:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 13:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 13:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:00:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e6375c0a-c60e-457c-a316-5cb2c431871e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 13:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 13:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 13:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 13:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:05:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9b88002f-4fd7-4cda-b5fd-e66a5f52c86e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 13:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 13:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 13:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 13:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:10:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41ad8d03-6866-4b8d-a97c-e69395475f5b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 13:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 13:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 13:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 13:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:15:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63bdba1b-bf05-4d86-940e-c763ffd2b8dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 13:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 13:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 13:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 13:20:00","totalConnections":1}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"16e0ca16-aba1-4f4b-8a01-ab09ad50a78b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 13:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 13:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 13:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 13:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:25:00"}
{"durationMs":1.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4fb8a6ec-b27e-48f8-87b9-b837202bd9a3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 13:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 13:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 13:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 13:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:30:00"}
{"durationMs":1.37,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af7c81b5-4912-4b84-95e1-018acb8a1758","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 13:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 13:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 13:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 13:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:35:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f1b9bcdc-87e6-484f-b3f0-b06613a35292","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 13:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 13:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 13:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 13:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:40:00"}
{"durationMs":1.55,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9bcc0d1f-55e1-429d-996b-3a5adb1b07a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 13:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 13:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 13:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 13:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:45:00"}
{"durationMs":1.48,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f3fa2472-253f-4ca8-b23f-6d223f027866","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 13:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 13:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 13:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 13:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:50:00"}
{"durationMs":1.26,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c4d581f2-418b-482e-b021-d03312b7f053","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 13:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 13:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 13:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 13:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:55:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9307f58d-6b73-4917-96d3-e3a4b334b470","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 13:59:00"}
{"durationMs":4.56,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bd55cf8b-82c6-4e48-b42b-9d55bd4d748d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 13:59:11","userId":null}
{"durationMs":2.37,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"da9f80df-a979-4f33-a881-0b53361525d9","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 13:59:11","userId":null}
{"durationMs":2.62,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"ae3b6600-5f6f-4b02-a2be-0181bac5db9e","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 13:59:11","userId":null}
{"durationMs":145.63,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"0935ccbc-c23b-4744-b688-535004a0d5c3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:59:11","userId":null}
{"durationMs":128.76,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ec35559d-314c-407d-b6a2-77b2297806fe","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 13:59:11","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":210.1,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"c6cbbbaa-0564-420a-9061-1aa2a20d649c","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:59:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":211.49,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"08278683-4b23-4e9a-a757-db15fdca4e2b","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":304,"timestamp":"2026-09-07 13:59:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":772.5,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 13:59:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":763.6,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 13:59:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":993.4,"event":"API_ERROR","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 13:59:12","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":75.21,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ec35242a-236d-40e3-a1a8-866a63c53088","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:59:12","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":426.9,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 13:59:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":515.5,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 13:59:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":518.2,"event":"API_RESPONSE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 13:59:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788778748240-744630","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 13:59:13","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":23.03,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4b969e1e-b4b2-42d7-8730-28034dc8512a","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:59:13","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"href":"/dashboard","navId":"1788778750131-821603","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 13:59:15","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.93,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9a4c3443-caf7-4928-beb5-48563cd0bde3","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:59:15","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":54,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","timestamp":"2026-09-07 13:59:18","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"durationMs":22.97,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1e347b66-97a1-44ea-9aed-88e4bbd53490","schoolId":"cmp8gtb7j00008bcnd6vyf567","service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:59:18","userId":"cmp8gtfff00cc8bcnm7wkpzqv"}
{"data":{"from":"/dashboard","href":"/dashboard","navId":"1788778750131-821603","text":"Dashboard","to":"/login"},"durationMs":6083,"event":"NAV_PATH_CHANGE","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 13:59:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard","navId":"1788778750131-821603","to":"/login"},"durationMs":6083,"event":"NAV_STALL","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 13:59:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/dashboard","navId":"1788778750131-821603","to":"/login"},"durationMs":6109,"event":"NAV_RENDER","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 13:59:21","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.24,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"477fe2f9-acfa-451f-9e9f-5e28faf0e1dd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:59:21","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 13:59:30","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.48,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b6153c33-b97a-4cf7-a619-7e16a45cc7ea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:59:30","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":17,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 13:59:31","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.28,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0488b381-75c6-4f28-835c-44b2526bd3e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:59:31","userId":null}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":4,"event":"UI_CLICK","ip":"41.220.233.110","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 13:59:32","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36","userId":null}
{"durationMs":2.22,"ip":"41.220.233.110","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b9b60db5-3ff4-4b4c-9980-ecc966bbc7d1","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 13:59:32","userId":null}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 14:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 14:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 14:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 14:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:00:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"796955c4-060d-4772-8da3-5a1e85422dfd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 14:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 14:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 14:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 14:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 14:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:05:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33c90d7f-833e-4d8e-94c2-1af4ef1ed76e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 14:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 14:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 14:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 14:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 14:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:10:00"}
{"durationMs":1.58,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1799670e-5fb2-471b-93cc-38ead6df8e4f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 14:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 14:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 14:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 14:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 14:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:15:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0cf8882d-c82c-4e8c-a6ef-acb4c17be262","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 14:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 14:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 14:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 14:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 14:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:20:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"228ac338-dad9-4815-a476-00268ff728b0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 14:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 14:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 14:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 14:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 14:25:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84207f6a-0574-4033-a37f-d5cbe7e4c901","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 14:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 14:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 14:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 14:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 14:30:00","totalConnections":1}
{"durationMs":1.57,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a8e03561-5cf6-4bdb-bd9b-7970481eb38f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 14:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 14:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 14:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 14:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 14:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:35:00"}
{"durationMs":2.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"af0033de-9c74-4390-b46c-4148d49a5e72","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 14:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 14:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 14:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 14:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 14:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:40:00"}
{"durationMs":0.86,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f5035485-806c-4406-aaff-3e11e4cebd37","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 14:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 14:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 14:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 14:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 14:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:45:00"}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"243f1b64-ea93-4c91-bed5-fca915161975","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 14:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 14:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 14:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 14:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 14:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:50:00"}
{"durationMs":1.99,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0864cf53-ff8c-48bd-a4a6-d831d566bd4e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 14:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 14:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 14:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 14:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 14:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:55:00"}
{"durationMs":1.71,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3655ccc-f26c-419f-aaff-e5fce3782071","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 14:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 14:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 15:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 15:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 15:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 15:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:00:00"}
{"durationMs":1.65,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7e9a132c-ca73-4ce3-b8e0-5f3a918161a4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 15:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 15:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 15:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 15:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 15:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:05:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"478c87a7-fe09-4b77-b62e-8505afd586ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 15:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:06:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 15:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 15:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 15:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 15:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:10:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e7638924-2860-4cb7-91e8-ad884f9691ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 15:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 15:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 15:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 15:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 15:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:15:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"580f7494-c6b3-4017-9d4b-156220a2b839","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 15:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 15:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 15:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 15:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 15:20:00","totalConnections":1}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6ff9f2e5-44e0-4b08-a49d-6528d7e2c0df","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 15:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 15:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 15:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 15:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 15:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:25:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44e2025c-49d0-4f09-b20c-d5a4bd9be058","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 15:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 15:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 15:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 15:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 15:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:30:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ace983b-3692-4e69-8e60-25965ddbd878","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 15:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 15:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 15:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 15:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 15:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:35:00"}
{"durationMs":1.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dc497481-97af-4adb-bb33-f8e63ff49859","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 15:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 15:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 15:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 15:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 15:40:00","totalConnections":1}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"edaea4a2-a2aa-4dbb-8130-bdf4337217bc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 15:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 15:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 15:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 15:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 15:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:45:00"}
{"durationMs":1.18,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"41790fe1-47ce-4835-b2ee-d7f1ad560fe8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 15:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:47:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 15:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 15:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 15:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 15:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:50:00"}
{"durationMs":1.46,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8243094-948b-4fcc-88d9-a2cbfa22d069","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 15:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 15:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 15:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 15:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 15:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:55:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7c5c921e-98f1-4ee3-a02e-62ef046c20a5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 15:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 15:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 16:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 16:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 16:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 16:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:00:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d914506-79a9-480e-a2dd-2151c09aadfc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:03:00"}
{"durationMs":2.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/profile","requestId":"5f8de838-0afc-44c0-8a2b-6c57ef8c77fe","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"6e69a6ff-b5de-47e8-8d26-5fe1d4736dcc","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"105fe937-52a2-42de-8bf7-c0ba29173733","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"08a5cda3-950d-4544-abd9-0cbd97cc7f7b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"166da0e4-1706-4d38-86ae-3e8e357d02bb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"41509b86-2f2a-45a8-b896-37006de598f6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.99,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"776d9d6c-5ee1-4e40-bef2-49d51f1e9657","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"136c03ac-93de-47db-a5fe-b040cc0ab8dd","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"5701d8e5-6958-4e6d-9d26-a5b03de4a3df","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"ce85d29f-1f36-44c1-a3f8-90f1e7a82505","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"d6b13a6a-6a28-4073-bc88-999d0bc4ed8d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"c97bb0f2-21f0-4257-8685-e07f296ccb5d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"cf59697e-a59f-4128-9610-f4bd1d3367e4","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"b8c5e94f-4bd5-4d85-929a-430cf52f42f7","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":0.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"de7129ad-3b0c-4379-b31f-45063a56cd90","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:22","userId":null}
{"durationMs":2.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"977f5da0-2f68-4f7f-b4a0-c8086efc4f1b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:23","userId":null}
{"durationMs":1.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"1a977033-1d26-4470-925f-7ff926f2a1ca","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:23","userId":null}
{"durationMs":1.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4bdd2c00-12d6-4dc6-8e21-3e966211e668","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:23","userId":null}
{"durationMs":2.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"baba2b55-36c8-4814-9f81-2010c59d366f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:03:23","userId":null}
{"durationMs":34.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"666e9528-d252-4b17-9d21-6635b5b53c90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:03:23","userId":null}
{"durationMs":99.81,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"e2bce786-6f3e-46cd-a33b-fc868f3d27cc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:03:23","userId":null}
{"durationMs":160.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"47be1bbc-666e-4743-a8bf-8241dd821972","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:24","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":459.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"089b9b34-af97-466e-aa86-c6359439f6d5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:24","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":623.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/school-info","requestId":"9d607132-e420-4f27-9f85-2da9b7914259","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":472.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"48388851-0848-4e39-bcc3-56d430b9f7ee","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":476.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ace17a4d-eac3-4a06-94a1-c88ba975af71","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":627.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/dashboard","requestId":"35463c9d-8696-435e-afbb-c2bd4ec7c990","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":516.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/profile","requestId":"89095e72-d8b5-4875-b8b4-be6e495d4035","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":205.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"0ed3c430-8b18-44a8-ad6b-8d425c2e7150","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":201.48,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"84899b96-6d43-4de6-bdfb-59915a8202a6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":310.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"37d362eb-b26b-4d50-b2dc-2719fc8e415d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":236.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"c6e71e6a-06b6-4e54-bf02-94763a034e7e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":341.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"0b4c19ff-a5c6-4727-97b5-ce970adfb067","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":251.62,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"83d4460d-a0e0-4bbd-abc7-987e488e9fd2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/school/mpesa-config"},"durationMs":2408.3,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/dashboard/stats"},"durationMs":2515.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/dashboard/revenue-trend"},"durationMs":2534.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/dashboard/attendance-trend"},"durationMs":2584,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/dashboard/recent-activities"},"durationMs":2593.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communications/sms/settings"},"durationMs":2666.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/dashboard/grade-distribution"},"durationMs":2813.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communications/whatsapp/status"},"durationMs":2815.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":2822.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":2828.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":2831.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":2838.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9b01cf96-eed9-498f-9ee7-6dd7ea896589","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/guardian/profile"},"durationMs":2077.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":2493.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/guardian/school-info"},"durationMs":2500.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/guardian/dashboard"},"durationMs":2583.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":2585.3,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":2596.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":2766.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":19.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3e2dae32-426b-4058-bb6a-de69960edbe5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":54.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"55be8d11-48a2-4b05-8e64-9596e5cbca54","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":360.67,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"11503ce5-63fa-477d-beef-203e828b4918","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":33.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"e88e99c5-7207-473d-9952-15c2a2b16a35","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":46.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"3ffa6bb3-984e-474a-a1b1-504608a5a186","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":50.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"eb8a5e2a-55c0-45ba-9329-fd3a7f8b4609","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":51.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"11218f68-1e5e-4adb-b50d-cc95268198d5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":481.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/school-info"},"durationMs":1000,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/dashboard"},"durationMs":1002.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1007.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1008.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1009.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/profile"},"durationMs":1010.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3283c673-2fca-4c86-8236-38aa1849c29e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:03:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":611.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":614.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":841.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":847.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":852.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":980.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":992.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":995,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":997.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":1039.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1048.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1416.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:03:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"079068f2-4b6c-411b-a1ee-257de6003823","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:03:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:04:00"}
{"data":{"href":"/guardian/profile","navId":"1788786239581-757114","text":"Profile"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9a714a97-137c-43b7-afea-dc10e0841fa3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:04:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/notifications?limit=6","requestId":"0fbf0b81-18d9-42f1-a6a8-101ebb406490","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:04:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/guardian","navId":"1788786248847-226929","text":"Home Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/profile","href":"/guardian","navId":"1788786248847-226929","text":"Home Dashboard","to":"/guardian"},"durationMs":719,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/profile","navId":"1788786248847-226929","to":"/guardian"},"durationMs":719,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"05da1b82-b6e2-4fd6-a155-3e1094068c07","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:04:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/profile","navId":"1788786248847-226929","to":"/guardian"},"durationMs":1160,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/notifications"},"durationMs":372.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3f5c9e5a-fec5-454f-9dd4-e6cfbd9e7c4d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:04:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":61.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f75f84ff-fcd3-4a0d-9925-441b4ca75b23","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:04:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":90.52,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"181a358e-9de6-4fef-adc7-fc71fff9cfbe","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:04:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":384.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":444.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2f25acd7-34d6-4239-8696-b212d978c4ed","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:04:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/guardian/calendar","navId":"1788786274173-463434","text":"School Calendar"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:39","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c9ec23ec-2edc-4430-b4f0-8b686e25ad6b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:04:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":56.39,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"855d4db8-94e1-4a42-9bea-fdea45451fcf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:04:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":108.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/events?startDate=2026-08-24T21:00:00.000Z&endDate=2026-10-07T20:59:59.999Z","requestId":"4e177a5d-80dd-4be1-bc6b-ebc2bd28050a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:04:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":96.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"073c2530-35bf-47d8-b796-78d0e5ee5f6f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:04:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":182.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"8ed13881-1b4d-4af5-abf7-e7499b8bc3b6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:04:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian","href":"/guardian/calendar","navId":"1788786274173-463434","text":"School Calendar","to":"/guardian/calendar"},"durationMs":1271,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/calendar","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian","navId":"1788786274173-463434","to":"/guardian/calendar"},"durationMs":1271,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/calendar","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian","navId":"1788786274173-463434","to":"/guardian/calendar"},"durationMs":1422,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/calendar","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":386.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":406.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/calendar/summary"},"durationMs":481.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/calendar/holidays"},"durationMs":488,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:04:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":18.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fde410a2-0eda-4928-9acd-76a0235c672b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:04:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 16:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 16:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 16:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 16:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:05:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0ec1c48e-a743-402e-8921-6eff2e627019","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:05:02","userId":null}
{"data":{"href":"/guardian","navId":"1788786297225-170608","text":"Home Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/calendar","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/calendar","href":"/guardian","navId":"1788786297225-170608","text":"Home Dashboard","to":"/guardian"},"durationMs":368,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/calendar","navId":"1788786297225-170608","to":"/guardian"},"durationMs":501,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a88bcf20-ef4d-4ede-909f-4a2159b1a241","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:05:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/guardian/profile","navId":"1788786308647-403621","text":"Profile"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian","href":"/guardian/profile","navId":"1788786308647-403621","text":"Profile","to":"/guardian/profile"},"durationMs":766,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian","navId":"1788786308647-403621","to":"/guardian/profile"},"durationMs":766,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ec96f3af-0f4b-4598-ba89-a20a9222e372","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:05:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian","navId":"1788786308647-403621","to":"/guardian/profile"},"durationMs":1052,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"768c6463-7d1b-4445-a1ea-2240bb727e44","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:05:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":107.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f33e37a6-0305-48bb-a96c-b57a041b0b97","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:05:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":71.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4f6cf205-77fc-40b9-8adb-5f46f26c918f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:05:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":412.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:27","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":399.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:27","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Communication","name":null,"type":"button"},"durationMs":55,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:27","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d4272587-5118-4b03-ad24-df18d52d7320","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:05:27","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Dashboard","name":null,"type":"button"},"durationMs":74,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":7.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6efc7faf-3e0d-47a9-92e9-7c6b4ac5b261","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:05:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"School","name":null,"type":"button"},"durationMs":38,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c6ca8dea-a65e-49c7-805f-6ea301294b8d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:05:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/guardian/profile","navId":"1788786336771-49819","text":"My Profile"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:42","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fa826c43-686f-4327-8b50-eaf897ab13ff","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:05:42","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":111,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:05:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d8c476f0-7668-404e-9513-5583d59c38bb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:05:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:06:00"}
{"data":{"id":null,"label":"Child Details","name":null,"type":"button"},"durationMs":55,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1210ac81-e5a5-4c99-8bd7-a033b2221b65","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Dashboard","name":null,"type":"button"},"durationMs":31,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e59609d7-cf88-4d85-9e5a-a889082204c7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":50.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/guardian/children","requestId":"7f7f00a8-927e-480b-8f6f-980b80f47fea","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:06:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/guardian/students","navId":"1788786368994-925560","text":"My Children"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/guardian/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/profile","href":"/guardian/students","navId":"1788786368994-925560","text":"My Children","to":"/guardian/students"},"durationMs":377,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/guardian/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/profile","navId":"1788786368994-925560","to":"/guardian/students"},"durationMs":437,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/guardian/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/guardian/children"},"durationMs":382.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e3fbc045-4295-409b-a033-171cc7940dc9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Account","name":null,"type":"button"},"durationMs":55,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/guardian/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:21","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":7.52,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2f0be454-e45c-4ced-9e48-ea75f99ffeaa","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:21","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":52.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7ca50b06-a630-4577-8feb-d16c4e1d04d1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:06:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":167.03,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"0b5ecb67-7e5f-40a2-b533-0c4af5bff52f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:06:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":393,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:27","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":480.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:27","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"66c5e655-f405-4925-bac1-e6f7f90eefe7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:27","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/guardian/students","href":null,"navId":null,"text":null,"to":"/login"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 16:06:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"data":{"from":"/guardian/students","navId":null,"to":"/login"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 16:06:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ebf4ce85-90a9-4470-812b-270b3cf847bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:29","userId":null}
{"durationMs":724.48,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/login","requestId":"50936d34-ccfd-4b76-8f93-0b273b1119ce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:33","userId":null}
{"data":{"id":null,"label":"Sign In to Dashboard","name":null,"type":"submit"},"durationMs":82,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/login","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 16:06:33","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":1.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0f0a892e-ebd8-4572-b89e-8596e19bb2d5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:33","userId":null}
{"durationMs":42.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"b2edd07b-df2b-4d9b-aeb0-0d352365b57d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:33","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":48.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/reports/dashboard","requestId":"ff25c0a1-9cf5-47dd-b363-9fb86f48921b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":21.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/terms?isCurrent=true","requestId":"01658edc-599a-41a4-bfab-75c3bccbc566","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/grade-levels","requestId":"80018dc1-1643-4b60-a39f-68a192905eff","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/learning-areas","requestId":"24b64e1d-e43c-4dad-902b-6069c798633d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":20.67,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"2e1439c3-3a12-4a84-a7f0-92a4120d1843","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":20.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"d3ee7b00-54f2-4816-945b-d09849adcfd7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:06:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"8e241992-871c-4189-8fb6-e359c20b0aea","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:06:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":41.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5a22904e-d793-44a8-961a-e876cccc495b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:06:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"b532cb11-ceb8-43b7-b4ea-4d94896c1cbf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:06:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":200,"url":"/auth/login"},"durationMs":1017.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/login","href":null,"navId":null,"text":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":468.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/reports/dashboard"},"durationMs":804.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"83d9bae3-1d94-49e7-a4f0-3aa7b94fbf33","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":151.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"1f25c932-bf9d-476d-85ff-c3454ec444fc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/learning-areas"},"durationMs":834.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":900.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":739.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":746.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":751.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":754.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/grade-levels"},"durationMs":1057.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/terms?isCurrent=true"},"durationMs":1062.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":94.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d17d1f67-060d-48f7-a9a7-adbd1901a718","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":302.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"4cd406f8-c36c-4292-afc3-33e21f3b77cc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:06:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":384.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"1df87f83-df20-4092-83b8-af16b10c0168","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":384.63,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"0514f4d7-b93d-4599-ab83-50caba6eec0e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":346.58,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"2aec9e87-b5f3-4e4a-87ee-b8cb5f6a2e95","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":361.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"0e22e2f8-6f41-41d5-b77d-c31a9deb1fa2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":342.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"ff350fb3-18d0-4cf2-b21b-01e36c7adc92","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:06:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":267.96,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"feab98e8-31ac-43bb-be73-f7f3ba18f3c3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:06:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":446.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":678.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":762.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":783.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":787.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":791.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":794.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":798.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:06:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c7a0d0e0-2a74-473f-b3f7-0c69d0b20797","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:06:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:07:00"}
{"durationMs":65.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"365b629f-17d6-45cb-9463-7241ac6c0617","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:07:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":72.99,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"e84223c2-4180-4c56-8d8f-c2372dfa79bf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:07:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":410.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:07:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":398.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:07:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3d09e33e-f82f-4c83-bbd8-f1cc8cee9239","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:07:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":27.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"1618ce23-3e1d-4350-af14-73f871fecd70","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:07:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":376.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:07:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d43fb378-269a-4491-8673-0639f7908afc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:07:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/assessments/exams","navId":"1788786473757-57975","text":"Exams"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:07:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"973c4d06-6905-41f4-9402-9d2fe94bfbc5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:07:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":43.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"e7ca5d9b-4bd6-4f80-9b11-062d8e5e8489","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:07:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":49.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/subjects","requestId":"bfe06dd7-9474-4681-8bf4-75d9370aade6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:07:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.39,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"965e8b97-0f3c-46e9-838a-1aba55216247","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:07:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":85.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?page=1&limit=10","requestId":"5f6a5c58-9468-4073-a27c-0f8a3ea850fc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:07:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":"/dashboard/assessments/exams","navId":"1788786473757-57975","text":"Exams","to":"/dashboard/assessments/exams"},"durationMs":1441,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/assessments/exams","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788786473757-57975","to":"/dashboard/assessments/exams"},"durationMs":1441,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/assessments/exams","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788786473757-57975","to":"/dashboard/assessments/exams"},"durationMs":1961,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/assessments/exams","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/subjects"},"durationMs":588.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":591.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":604.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":701.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f591964d-f30c-4d02-9a70-1c9b089fec2d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:08:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:08:00"}
{"durationMs":67.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3b19d8c7-1c94-4e37-ac0a-8558e61d99ec","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:08:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":59.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"4452bcb1-cafb-499b-8bb6-8b0dd74c3c5b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:08:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":364.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":360.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5b552486-1d57-413a-8817-1f88f0a79c49","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:08:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"f1d62f3b-0f22-4664-a3f6-090659f580b5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:08:43","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"d3ffd166-a146-4e61-833a-2f37c6c7efc5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:08:43","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":141,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"cafa405f-334b-49e7-abb9-defb91f70ff6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:08:43","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":130.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"a6687c0e-34d2-4572-943e-8fb7ea705629","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:08:43","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard","navId":"1788786518251-875293","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/assessments/exams","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/assessments/exams","href":"/dashboard","navId":"1788786518251-875293","text":"Dashboard","to":"/dashboard"},"durationMs":548,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/assessments/exams","navId":"1788786518251-875293","to":"/dashboard"},"durationMs":548,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/assessments/exams","navId":"1788786518251-875293","to":"/dashboard"},"durationMs":1248,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":727.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":735.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":739.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":745.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:08:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"89c5a03e-ce44-4fdc-86bc-2df171ad501b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:08:44","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:09:00"}
{"data":{"href":"/dashboard/cbc/report-cards","navId":"1788786535603-667196","text":"Report Cards"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8968a867-6db5-4e1b-baf7-61134b6bb80c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:09:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.18,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"a4766e31-2501-4fb3-a2b2-d8ae0c8fc74b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:09:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":63.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"0885ad7b-8cda-4d38-8caa-b8c41b68f47f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:09:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":51.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"bdb0cba7-7ae3-4dcb-bb95-cb68a3e13e97","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:09:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":75.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"b3aeff83-12dd-4d21-b200-d063c12ff409","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:09:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":82.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments","requestId":"9337da29-ab2f-4d81-b300-135d410319dd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:09:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":92.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/report-cards?page=1&limit=10","requestId":"8e894132-cffa-47f6-8aa7-5515f7d0fbbf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:09:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":"/dashboard/cbc/report-cards","navId":"1788786535603-667196","text":"Report Cards","to":"/dashboard/cbc/report-cards"},"durationMs":3599,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/cbc/report-cards","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788786535603-667196","to":"/dashboard/cbc/report-cards"},"durationMs":3599,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/cbc/report-cards","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788786535603-667196","to":"/dashboard/cbc/report-cards"},"durationMs":4026,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/cbc/report-cards","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":525.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":531.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":539.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":544.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":550.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/cbc/report-cards"},"durationMs":556.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ac00f09d-15d8-4519-b88a-b4e0b18fdbdc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:09:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":"button"},"durationMs":74,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/cbc/report-cards","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"dbf79a23-5abc-46b6-a442-0fd0bbbda606","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:09:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard","navId":"1788786565926-396399","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/cbc/report-cards","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/cbc/report-cards","href":"/dashboard","navId":"1788786565926-396399","text":"Dashboard","to":"/dashboard"},"durationMs":504,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/cbc/report-cards","navId":"1788786565926-396399","to":"/dashboard"},"durationMs":504,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/cbc/report-cards","navId":"1788786565926-396399","to":"/dashboard"},"durationMs":893,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b6ea27e9-a808-46f7-8b08-6983f6f4aba4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:09:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":70.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"b69225c0-1976-436d-907b-cd328edfa3ae","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:09:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":65.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"608c890b-9fac-44c2-aba3-25462640076b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:09:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":424.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":415.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/reports","navId":"1788786572239-986861","text":"Reports"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b94d65ed-d0ed-4c78-9cd0-673d17ed5363","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:09:37","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":"/dashboard/reports","navId":"1788786572239-986861","text":"Reports","to":"/dashboard/reports"},"durationMs":1153,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/reports","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788786572239-986861","to":"/dashboard/reports"},"durationMs":1153,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/reports","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788786572239-986861","to":"/dashboard/reports"},"durationMs":1265,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/reports","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:09:38","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"653b3e60-215b-4258-8665-d8cb99c4c596","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:09:38","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 16:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 16:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 16:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 16:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:10:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6eb8b991-5cff-456a-b233-052c017ee354","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:10:02","userId":null}
{"durationMs":2.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/terms","requestId":"545247d4-9f73-4769-890d-6634257e9757","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-07 16:10:06","userId":null}
{"data":{"id":null,"label":"Staff Performance ReportTeacher performance metrics based on class results and a","name":null,"type":"button"},"durationMs":53,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/reports","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:10:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/reports","href":null,"navId":null,"text":null,"to":"/reports/staff/performance"},"durationMs":null,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/reports/staff/performance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:10:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/reports","navId":null,"to":"/reports/staff/performance"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/reports/staff/performance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:10:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":39.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"68699097-7187-4612-8344-1f30adf60039","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:10:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":53.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"bdcfcb54-8b73-4338-9ff0-9ff32ac71574","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:10:27","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":53.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a144aea8-b50a-4a32-90de-303dee43ea2c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:10:27","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":81.67,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ed2125ba-f333-48b7-acb6-e56f90e520b0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:10:27","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/login","navId":null,"to":"/dashboard"},"durationMs":null,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:10:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":613.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:10:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":489,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:10:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":833.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:10:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a6f2c021-8d5f-46dd-98d3-58c0b3a2d601","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:10:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:11:00"}
{"data":{"href":"/dashboard/attendance","navId":"1788786656706-171913","text":"View All"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":49.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"46eee16f-0fbf-4984-9ff6-1c548145d3e6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"9d2e9376-6ba9-42f7-ad32-0df0f3ddda86","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":40.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"b0ab6982-5304-4d46-b1bd-9191e12aad77","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":"/dashboard/attendance","navId":"1788786656706-171913","text":"View All","to":"/dashboard/attendance"},"durationMs":1454,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788786656706-171913","to":"/dashboard/attendance"},"durationMs":1454,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788786656706-171913","to":"/dashboard/attendance"},"durationMs":1874,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":516.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":519.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:03","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5ed64d19-50c1-4952-ad86-34dc0ec2c7eb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:03","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"14be51e0-565c-4368-a351-5a419bf47919","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":29.02,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"ca491696-b54f-469c-aff6-3fcbd2077a87","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":83.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?date=2026-09-07","requestId":"d693eff0-43ff-4f14-abf1-848db213a3ce","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"History","name":null,"type":null},"durationMs":191,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":353.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":406.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":411.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3ccdc768-61ba-4739-be73-0e1eee415e71","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":70.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"04a9745e-07bf-4a36-95dd-5c5e2cc1a6f6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:11:27","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":40.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"78a3108e-00bc-4864-97a0-8914d63d93e3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:11:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":434.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":336.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Staff Portals","name":null,"type":null},"durationMs":87,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"98353185-0c8a-4aec-b44c-f60c2b0ef12c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Teacher Portal","name":null,"type":null},"durationMs":327,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"215c7461-a9f7-4d44-a248-3837251152d8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5c14ca8d-a7c6-4fb8-938e-7538b9b56f0f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:48","userId":null}
{"durationMs":28.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"0a42a8f7-df93-4545-aef2-b08e585141ae","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:11:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":203.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms/current","requestId":"33541509-92f5-4b69-8021-10de188a6149","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:11:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":251.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"d94b4027-d304-490a-994f-cafc984e228f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:11:48","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":250.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"0961b770-4cec-453a-b9e4-0f22c501285a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:11:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":254.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"f7dc760a-65be-4111-9319-baf120392fe2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:11:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":378.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"eaced342-9ee1-4ce7-a212-d84e01b0b659","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:11:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":367.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"e72ab097-eb5b-4135-b281-3563411b49be","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:11:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":377.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"71213317-49a2-460c-9417-357a37053c58","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:11:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":363.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:49","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/overview"},"durationMs":767,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:49","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":773.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:49","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":781,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:49","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academic/terms/current"},"durationMs":803.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:49","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":810.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:49","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":815.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:49","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":830.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:49","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"93be7c87-6ead-46d7-84e9-acca87d5419b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"d81823fc-4baf-4dbd-92d0-5fedff2104d8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:11:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"6f70de3d-75b2-410a-ad6b-0f6a7bfe4e42","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:11:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":44.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"3f857c1e-5f3f-4139-b4df-ebc08caac78a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:11:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"2670fb61-3a0f-4b5f-8904-d1f390176f5e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:11:50","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":24.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"3124e5a9-ac88-4c43-ac9e-1190f9dc0ab7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-07 16:11:50","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/overview"},"durationMs":359.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":351.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":363,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":336.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/clocking/status"},"durationMs":339.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3c4c3978-8de1-44b7-8862-b76e4b779ede","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"7dd68e87-e621-408a-b796-a6e18ec71b90","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:11:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":318.3,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:11:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.95,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4f2899ed-e43b-410a-b152-008fa5a73a23","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:11:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:12:00"}
{"data":{"id":null,"label":"Clock In","name":null,"type":null},"durationMs":84,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"17c99487-e3cc-473b-aa4e-d89f5f8b1333","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:12:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":26.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/clocking/in","requestId":"4e7450d4-f932-4442-8d91-2941476c7fd8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-07 16:12:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":403,"url":"/clocking/in"},"durationMs":656.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f7df7b50-3e9e-4139-a7a0-41a0cd36552b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:12:29","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":20.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/clocking/in","requestId":"0c6a9e83-3c36-4db1-991d-7e4fe4786963","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-07 16:12:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Clock In","name":null,"type":null},"durationMs":46,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":403,"url":"/clocking/in"},"durationMs":318.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b426e812-bf0c-4303-a71b-df8f4cf7f4ae","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:12:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":94.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4fe9914a-aaa8-4ab7-b354-b419e79d594d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:12:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":102.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"809056ad-c010-473a-bd9d-f11f1f905176","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:12:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":429.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:50","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":420.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:50","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6c690564-27ad-4976-829f-b063d6310c2d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:12:50","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"0f7458a5-8781-4329-ae90-310dbc0f734e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-07 16:12:50","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/clocking/status"},"durationMs":374.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4ac3486e-75c3-47a6-9c95-eda7599be700","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:12:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/class-teacher/timetable","navId":"1788786768025-141405","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5acdf074-d8d9-4648-9258-e417d9f9d6b5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:12:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":41.37,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"f4d9e52c-649e-4504-9a67-f186341c7abe","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:12:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule","requestId":"2be9ed50-6f28-4882-ab42-0b782c52dcb2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:12:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/teacher","href":"/dashboard/class-teacher/timetable","navId":"1788786768025-141405","text":"Timetable","to":"/dashboard/class-teacher/timetable"},"durationMs":1440,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/teacher","navId":"1788786768025-141405","to":"/dashboard/class-teacher/timetable"},"durationMs":1440,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/teacher","navId":"1788786768025-141405","to":"/dashboard/class-teacher/timetable"},"durationMs":1506,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":335.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":352.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"41773832-01d8-4b53-ac1d-5f6d4e2e33bc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:12:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":25.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule","requestId":"67339172-e1b5-487a-8262-23dab073afd2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:12:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":44.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"e2527c0b-caf3-4e73-91dc-1c4f70ba63df","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:12:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":460.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:55","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":477.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:55","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b75e4f01-0601-4026-b2d8-c5f1b71424c6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:12:55","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"My Lessons","name":null,"type":null},"durationMs":21,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:12:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e443e653-2005-4c14-9cb3-a67e48910abf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:12:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:13:00"}
{"data":{"id":null,"label":"Today","name":null,"type":null},"durationMs":19,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bd2b564a-f4b4-4680-be09-2b070385586d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:13:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"My Lessons","name":null,"type":null},"durationMs":38,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":18.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e84d48dc-42bc-4fec-b947-04249a511f23","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:13:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":43.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"bba13138-ccd7-4097-92d0-880f7f224031","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:13:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Lesson Plans","name":null,"type":null},"durationMs":43,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d1d6c08c-6826-4348-ba78-7de768655057","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:13:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":25.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"ee1d8099-b54d-4baa-96ff-f681b2e8152e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:13:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":345.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ea9ca47c-9119-4bfe-942b-4d1ce7ef3128","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:13:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":369.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4d982496-e513-4a4b-a4b0-9303c74a84ec","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:13:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Select class stream...","name":null,"type":"button"},"durationMs":191,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9e01cb89-1275-4053-93dd-7db5470e2e62","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:13:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Select class stream...","name":null,"type":"button"},"durationMs":59,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8a054128-b06c-4aec-ac5b-81e64a79548a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:13:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"body":{},"error":"Cannot read properties of undefined (reading 'findOne')","ip":"154.79.248.144","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findOne')\n    at Object.getUserPreferences (/home/aereuxky/cbcsms-backend/src/modules/preferences/preferences.service.js:14:42)\n    at getPreferences (/home/aereuxky/cbcsms-backend/src/modules/preferences/preferences.controller.js:16:39)\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:119:3)\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/index.js:280:10)\n    at authenticate (/home/aereuxky/cbcsms-backend/src/middleware/auth.middleware.js:117:3)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)","timestamp":"2026-09-07 16:13:29","url":"/api/v1/preferences","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":47.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/preferences","requestId":"9b46e715-d546-49d2-808b-d074ad3238f3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":500,"timestamp":"2026-09-07 16:13:29","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/class-teacher/settings","navId":"1788786804657-274513","text":"Settings"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/timetable","href":"/dashboard/class-teacher/settings","navId":"1788786804657-274513","text":"Settings","to":"/dashboard/class-teacher/settings"},"durationMs":796,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/timetable","navId":"1788786804657-274513","to":"/dashboard/class-teacher/settings"},"durationMs":796,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"898645a0-8bb7-46fe-a77d-bec74a9a18aa","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:13:29","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"body":{},"error":"Cannot read properties of undefined (reading 'findOne')","ip":"154.79.248.144","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findOne')\n    at Object.getUserPreferences (/home/aereuxky/cbcsms-backend/src/modules/preferences/preferences.service.js:14:42)\n    at getPreferences (/home/aereuxky/cbcsms-backend/src/modules/preferences/preferences.controller.js:16:39)\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:119:3)\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/index.js:280:10)\n    at authenticate (/home/aereuxky/cbcsms-backend/src/middleware/auth.middleware.js:117:3)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)","timestamp":"2026-09-07 16:13:30","url":"/api/v1/preferences","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/preferences","requestId":"28e7dee7-2e02-401e-a35e-4f5af89a40af","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":500,"timestamp":"2026-09-07 16:13:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/timetable","navId":"1788786804657-274513","to":"/dashboard/class-teacher/settings"},"durationMs":948,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":500,"url":"/preferences"},"durationMs":347.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":18.02,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e21d4824-32be-4665-9abf-fd458abed18a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:13:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":500,"url":"/preferences"},"durationMs":331.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"49c175f3-7b0f-4d33-8af3-ce8c3435dd83","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:13:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":58.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6e48bad1-e004-47ae-bc2a-a60d0ad5d53d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:13:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":47.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"8a3dccd6-6dbd-4335-bbfe-337fc20b00c2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:13:49","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":368.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":391.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:13:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"877b009a-64d6-4430-88c1-32f4f61ec3e3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:13:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:14:00"}
{"durationMs":103.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"daf68c45-d945-42e4-a772-a447a2127089","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:14:50","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":100.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"eddfe2fe-525b-45d7-9c81-69458278c672","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:14:50","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":743.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:14:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":805.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:14:51","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"33c97ffc-a801-421b-b4b0-76a83910aa77","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:14:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 16:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 16:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 16:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 16:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:15:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c2552e09-1c40-435a-b81c-9f30399f1e1f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:15:01","userId":null}
{"data":{"id":null,"label":"Enable","name":null,"type":null},"durationMs":4,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":18.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"76e33680-1432-49c7-9ae1-bcc712f7df5d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:15:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":59,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a7c30254-6a3e-4234-bac8-317a391bc067","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:15:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":84,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:25","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.02,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2861f6e9-a729-443c-ac47-29d779bb947c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:15:25","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":59.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"6b2f3996-a2ff-4ff5-b510-d2dcfa40aacb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:15:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":102.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule","requestId":"8bb2a863-9058-4ace-9b84-dbc7458ba78b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:15:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/class-teacher/timetable","navId":"1788786930296-791651","text":"Timetable"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/settings","href":"/dashboard/class-teacher/timetable","navId":"1788786930296-791651","text":"Timetable","to":"/dashboard/class-teacher/timetable"},"durationMs":278,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/settings","navId":"1788786930296-791651","to":"/dashboard/class-teacher/timetable"},"durationMs":328,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":411.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":421.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.99,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c5cdddd7-5e92-4437-a844-d565250c3a24","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:15:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"6dfbb8ad-fa5c-43fe-877f-c668c1003b71","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:15:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.52,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule","requestId":"6be956d0-dc39-4de3-bc69-5302f3a30e32","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:15:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":368.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":344.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:36","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"02169a77-49a8-4cdf-8f19-3a8f0224383b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:15:36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":80,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:42","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.96,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"56538ae7-4a6e-4c11-b9dd-89e8c595990b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:15:42","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"53c6d3c7-94b9-4e2b-b89b-b3c68432f8ec","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:15:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.86,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e40edcbe-6b1f-409d-abf5-f15e3b6dd273","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:15:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":932,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1207.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:15:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4cd9c60b-9fbe-4ee4-8728-b225243ac57b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:15:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:16:00"}
{"durationMs":53.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"67630285-5250-43dc-8ff1-362b049bd95d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:16:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"751f7c87-c05d-4f3f-a6dc-9efa9861c534","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:16:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":349.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:16:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":339.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:16:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bd587db0-d6d6-48d4-86c5-91edeed8356a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:16:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:17:00"}
{"durationMs":59.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"2fc34850-59bb-4337-a4f1-f3cc2a56ea30","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:17:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":36.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"49094b9b-2b48-4165-860c-c85a478bc011","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:17:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":393.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:17:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":348.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:17:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.73,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0c715fc1-30b9-49b6-92a8-d13d5a3c069a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:17:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:18:00"}
{"durationMs":84.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f9f79036-16bf-4772-a11f-4e619b80eaae","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:18:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":76.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6e185fd5-44fb-43ad-a020-d1f5882fe924","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:18:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":1932.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:18:55","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":1706.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:18:55","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d36927a5-7c1f-4178-9fa4-4c20f1834160","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:18:55","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:19:00"}
{"durationMs":71.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d6316000-fc32-49c1-a675-c77a4c436b71","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:19:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":47.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"a53c45c7-756b-41e1-a255-308273c6aa29","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:19:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":2075.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:19:57","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":2309.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:19:57","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":18.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"04aa98d3-c37c-4bc7-beec-b8f49bf655cf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:19:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 16:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 16:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 16:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 16:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:20:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6c35022-5ea4-41bc-8b03-6ca7bb3e708d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:20:02","userId":null}
{"durationMs":30.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"54d0299b-fd84-4328-8ee3-4f3fe33e3829","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:20:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":33.69,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"b1abd03e-8e74-4308-be07-ac39f6326eee","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:20:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms/current","requestId":"7d43d8cc-c076-4336-9c00-887ae9e1f1d4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:20:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/class-teacher","navId":"1788787207803-415047","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/timetable","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/timetable","href":"/dashboard/class-teacher","navId":"1788787207803-415047","text":"Dashboard","to":"/dashboard/class-teacher"},"durationMs":229,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/timetable","navId":"1788787207803-415047","to":"/dashboard/class-teacher"},"durationMs":257,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/overview"},"durationMs":359.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"21cd450c-a10a-459b-82bf-f2979ab61ba9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:20:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":43.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"38f4b79a-b206-4c48-9588-00bfbf4335ba","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:20:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":28.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"6547093c-6b8c-491c-94ee-3e5dadb832c3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:20:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"64a47d72-426e-4af6-872d-a9d8af7a98e9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:20:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":683.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academic/terms/current"},"durationMs":918.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/overview"},"durationMs":538.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"48ac2519-a7dd-4cb2-a931-4650ca9befc1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:20:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":23.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"7c3944b6-6352-4665-adaa-3e67a27d4e10","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-07 16:20:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"a5626676-09d5-42c3-915b-542011fea658","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:20:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":482,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":371.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/clocking/status"},"durationMs":646.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"64911e74-7806-46fa-a0af-741f4eba6292","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:20:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":328.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7f7527c9-08f9-46a1-83c5-b39a1e2cf2fe","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:20:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/class-teacher/students","navId":"1788787230549-853544","text":"My Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher","href":"/dashboard/class-teacher/students","navId":"1788787230549-853544","text":"My Students","to":"/dashboard/class-teacher/students"},"durationMs":730,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher","navId":"1788787230549-853544","to":"/dashboard/class-teacher/students"},"durationMs":730,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher","navId":"1788787230549-853544","to":"/dashboard/class-teacher/students"},"durationMs":797,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:35","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":39.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a2d34b6c-a819-4c09-8641-1e1d8f909f28","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:20:35","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"My Students","name":null,"type":null},"durationMs":8,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:39","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4e4dc4cc-9d6a-43f4-a934-1ee13fe001c6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:20:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":26.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"b144577a-cae9-43c9-a9af-36e171608503","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:20:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Other Classes","name":null,"type":null},"durationMs":21,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":362.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a3f42cee-5408-4c7d-a3fc-5a5dabe6f7b0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:20:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"45028a03-07fb-4579-9913-1a8fed722792","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:20:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":365.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:41","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"My Students","name":null,"type":null},"durationMs":26,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:41","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"95e3279a-6cc4-4b7c-9ebc-e19786d25df3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:20:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":63.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"be57a2cd-dd61-4c0d-9c6c-26a5f5d2175b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:20:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2b024654-a70b-4a4e-954d-d634d2001b3a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:20:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":359.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:57","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":355.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:57","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ee74615f-5169-4fb8-81f6-c895660ace92","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:20:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/class-teacher/portfolios","navId":"1788787254359-2022","text":"Student Portfolios"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/students","href":"/dashboard/class-teacher/portfolios","navId":"1788787254359-2022","text":"Student Portfolios","to":"/dashboard/class-teacher/portfolios"},"durationMs":475,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/portfolios","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/students","navId":"1788787254359-2022","to":"/dashboard/class-teacher/portfolios"},"durationMs":507,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/portfolios","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:20:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"42790e17-6bd2-4e0e-8e12-41014d112382","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:20:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:21:00"}
{"data":{"href":"/dashboard/class-teacher/assessments/formative-grades","navId":"1788787259921-891392","text":"Formative Grades"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/portfolios","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/portfolios","href":"/dashboard/class-teacher/assessments/formative-grades","navId":"1788787259921-891392","text":"Formative Grades","to":"/dashboard/class-teacher/assessments/formative-grades"},"durationMs":756,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/portfolios","navId":"1788787259921-891392","to":"/dashboard/class-teacher/assessments/formative-grades"},"durationMs":756,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/portfolios","navId":"1788787259921-891392","to":"/dashboard/class-teacher/assessments/formative-grades"},"durationMs":766,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cd73acd8-e833-49a6-a4b2-7b7cbcdefa5e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:21:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms","requestId":"b9a80485-70b1-476a-879f-40a326aa52c0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:21:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":50.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"e3be12a0-a109-4b75-b797-54c1585c6683","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:21:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":61.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"8dde5a52-eeb3-4904-9a44-7c5550c676a9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:21:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":28.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"2eac2f67-5fd7-4746-9907-e879f066ab36","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:21:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academic/terms"},"durationMs":328.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":366,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/cbc/learning-areas"},"durationMs":435.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e720690b-46c5-4668-ac10-225e9c7ee786","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:21:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":323.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2d929698-f479-41f9-97eb-b4aa6a2a1579","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:21:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.33,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"1f6a083c-f800-4e3a-a35b-086634b2eef6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:21:20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.83,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"8b92ede9-9c51-4725-9e77-ea5a1acc959a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:21:20","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/class-teacher","navId":"1788787276242-965878","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/assessments/formative-grades","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:21","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/assessments/formative-grades","href":"/dashboard/class-teacher","navId":"1788787276242-965878","text":"Dashboard","to":"/dashboard/class-teacher"},"durationMs":229,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:21","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/assessments/formative-grades","navId":"1788787276242-965878","to":"/dashboard/class-teacher"},"durationMs":273,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:21","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/overview"},"durationMs":360.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:21","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":368.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:21","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"740e2249-8467-4059-ba4d-9cc626379ec8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:21:21","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":48.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/overview","requestId":"82a7e292-6359-4b7e-8ea2-267ae304af04","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:21:21","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":39.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-schedule?day=Monday","requestId":"26a90bd2-c78b-4c47-b39d-ed394a0e3e7d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:21:21","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":39.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"da1bd7a3-8d53-49c6-b660-1151a6f6be72","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:21:21","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":33.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/clocking/status","requestId":"15719cb1-02a0-4ff0-8f3b-92b6ecd03849","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":403,"timestamp":"2026-09-07 16:21:21","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/overview"},"durationMs":353.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-schedule"},"durationMs":348.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":366.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":403,"url":"/clocking/status"},"durationMs":368.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"17ffb922-28f7-4c7b-88a7-3b7ae2b418e1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:21:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"955042ab-d45e-4d3b-b5a8-e10ab3f26993","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:21:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":335.3,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:23","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"35bd18d9-b62c-4af1-ae7e-34d2fb9c8f56","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:21:23","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Settings","name":null,"type":null},"durationMs":131,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher","schoolId":null,"service":"cbc-sms","timestamp":"2026-09-07 16:21:37","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":null}
{"durationMs":3.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a4ed8cd2-f81b-4f3a-af1c-d23b69ac5525","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:21:37","userId":null}
{"durationMs":1.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5db3fbf2-82ca-441e-90be-ab94875110d8","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:21:57","userId":null}
{"durationMs":1.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"be5b73fd-e72b-47f2-bbc6-cf845daa8770","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:21:57","userId":null}
{"durationMs":30.52,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"da92e7c0-6a35-412b-8327-aaf9da989205","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:21:58","userId":null}
{"durationMs":60.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3a63c5f6-aa9a-4b79-acfc-0f46fa2c182e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:21:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":55.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ce31090c-aa31-4e8d-b198-5c7f88fbac44","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:21:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1146.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":910.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":367.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":373.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:21:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"d1925733-9776-4fc6-be22-5aa54aa42f78","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:21:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:22:00"}
{"body":{},"error":"Cannot read properties of undefined (reading 'findOne')","ip":"154.79.248.144","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findOne')\n    at Object.getUserPreferences (/home/aereuxky/cbcsms-backend/src/modules/preferences/preferences.service.js:14:42)\n    at getPreferences (/home/aereuxky/cbcsms-backend/src/modules/preferences/preferences.controller.js:16:39)\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:119:3)\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/index.js:280:10)\n    at authenticate (/home/aereuxky/cbcsms-backend/src/middleware/auth.middleware.js:117:3)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)","timestamp":"2026-09-07 16:22:09","url":"/api/v1/preferences","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":46.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/preferences","requestId":"6e61c55b-999c-475e-821d-ece1765b26c2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":500,"timestamp":"2026-09-07 16:22:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/class-teacher/settings","navId":"1788787324783-856483","text":"Settings"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:22:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher","href":"/dashboard/class-teacher/settings","navId":"1788787324783-856483","text":"Settings","to":"/dashboard/class-teacher/settings"},"durationMs":290,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:22:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher","navId":"1788787324783-856483","to":"/dashboard/class-teacher/settings"},"durationMs":330,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:22:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":500,"url":"/preferences"},"durationMs":337.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:22:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"74f0ab0f-128c-4c35-a48a-29762d24956b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:22:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"body":{},"error":"Cannot read properties of undefined (reading 'findOne')","ip":"154.79.248.144","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findOne')\n    at Object.getUserPreferences (/home/aereuxky/cbcsms-backend/src/modules/preferences/preferences.service.js:14:42)\n    at getPreferences (/home/aereuxky/cbcsms-backend/src/modules/preferences/preferences.controller.js:16:39)\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)\n    at next (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:149:13)\n    at Route.dispatch (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/route.js:119:3)\n    at newFn (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express-async-errors/index.js:16:20)\n    at Layer.handle [as handle_request] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/layer.js:95:5)\n    at /home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/index.js:284:15\n    at Function.process_params (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/index.js:346:12)\n    at next (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/express/lib/router/index.js:280:10)\n    at authenticate (/home/aereuxky/cbcsms-backend/src/middleware/auth.middleware.js:117:3)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)","timestamp":"2026-09-07 16:22:10","url":"/api/v1/preferences","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/preferences","requestId":"c149e381-b68b-4e48-bd88-96a5e54da998","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":500,"timestamp":"2026-09-07 16:22:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":500,"url":"/preferences"},"durationMs":331.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:22:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.99,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"38a94b48-caf1-461a-803b-d9dd327e908e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:22:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/class-teacher/messages","navId":"1788787337382-609749","text":"Parent Messages"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:22:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/settings","href":"/dashboard/class-teacher/messages","navId":"1788787337382-609749","text":"Parent Messages","to":"/dashboard/class-teacher/messages"},"durationMs":594,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/messages","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:22:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/settings","navId":"1788787337382-609749","to":"/dashboard/class-teacher/messages"},"durationMs":594,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/messages","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:22:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/settings","navId":"1788787337382-609749","to":"/dashboard/class-teacher/messages"},"durationMs":634,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/messages","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:22:22","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ffc052d1-b796-4a3e-8457-fe9866e177e8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:22:22","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":73.81,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3a9efd5e-7e79-486d-b391-0ceadaa5b1c2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:22:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":70.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b88b8870-d334-4b3b-9215-58b66219f89c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:22:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":372.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:22:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":368.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:22:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"92f31739-daf2-4210-8e90-102eb5d68de0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:22:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:23:00"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":43,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/messages","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:23:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c48a2e4f-89a0-4904-b90d-1a340b117c15","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:23:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":null,"name":null,"type":null},"durationMs":83,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/class-teacher/messages","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:23:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"44a2858c-10a3-424d-983e-b50dd178b12b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:23:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/class-teacher/profile","navId":"1788787408925-615956","text":"My Profile"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/messages","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:23:33","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1c4fc57b-82f7-4c66-8b67-6ca956ce1b62","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:23:33","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":68.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/profile","requestId":"f7a3d615-0ee3-48d7-94fb-2c6e019aecf0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:23:33","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"body":{},"error":"Staff record not found for this user","ip":"154.79.248.144","level":"error","message":"API Error:","method":"GET","service":"cbc-sms","stack":"Error: Staff record not found for this user\n    at Object.getStaffByUserId (/home/aereuxky/cbcsms-backend/src/modules/staff/staff.service.js:221:17)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async getMyStaffProfile (/home/aereuxky/cbcsms-backend/src/modules/staff/staff.controller.js:98:21)","timestamp":"2026-09-07 16:23:34","url":"/api/v1/staff/me","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":172.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff/me","requestId":"949e5151-8fae-44e9-981f-efdb506f487e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":404,"timestamp":"2026-09-07 16:23:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/messages","href":"/dashboard/class-teacher/profile","navId":"1788787408925-615956","text":"My Profile","to":"/dashboard/class-teacher/profile"},"durationMs":977,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/class-teacher/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:23:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/messages","navId":"1788787408925-615956","to":"/dashboard/class-teacher/profile"},"durationMs":977,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/class-teacher/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:23:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/messages","navId":"1788787408925-615956","to":"/dashboard/class-teacher/profile"},"durationMs":1008,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/class-teacher/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:23:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/auth/profile"},"durationMs":360.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:23:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":404,"url":"/staff/me"},"durationMs":478.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:23:34","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a2e858c3-84f0-4bd6-b326-7933c4202d27","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:23:34","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":75.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6d63e22a-ed30-4bf8-bf2e-86a7e4d6edb3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:23:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":69.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bf967397-784c-4091-a561-732512320d3b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:23:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":388.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":382.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:00","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.51,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"1c545de6-9ef1-40dd-8ac4-d3f017e66f1b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:24:00","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:24:00"}
{"data":{"href":"/dashboard/profile","navId":"1788787439420-127558","text":"My Profile"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/class-teacher/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/profile","href":"/dashboard/profile","navId":"1788787439420-127558","text":"My Profile","to":"/dashboard/profile"},"durationMs":297,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/class-teacher/profile","navId":"1788787439420-127558","to":"/dashboard/profile"},"durationMs":510,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5d7ccc57-de27-44f5-99eb-7493124d504a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:24:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":3.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"a0f79c29-c347-4c72-8f31-87afe324c15d","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-07 16:24:04","userId":null}
{"durationMs":29.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"5a993e08-a46b-434a-b160-2c0566c62c21","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:24:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":44.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"ce0c1068-00e9-44fe-8912-758ef646f909","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:24:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":2.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/auth/me","requestId":"b6a1471f-9cc8-4996-933a-a2249fc5f565","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-07 16:24:05","userId":null}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":309.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":335.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":355.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a3c27eea-f87e-4116-b919-51ab0bf9f697","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:24:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":404,"url":"/auth/me"},"durationMs":351.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.62,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"001bf15d-079b-4f8b-bee6-23c94a39fff1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:24:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/students","navId":"1788787453320-959470","text":"Students"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/profile","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2cc8efd0-df75-41f5-92ad-30a65d32f598","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:24:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"f8f80aef-b741-4457-99ac-73e5305c6222","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:24:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":21.18,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"576376ea-5d97-413b-a92d-86199db56fc2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:24:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":78.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students/stats","requestId":"58e44681-f252-403e-8310-31ba767cc0bc","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:24:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":84.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10","requestId":"9cfd5a25-9560-4589-9172-71c252a0f65a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:24:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/profile","href":"/dashboard/students","navId":"1788787453320-959470","text":"Students","to":"/dashboard/students"},"durationMs":1299,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/profile","navId":"1788787453320-959470","to":"/dashboard/students"},"durationMs":1299,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/profile","navId":"1788787453320-959470","to":"/dashboard/students"},"durationMs":1656,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":579.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":585.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/students/stats"},"durationMs":589.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":597.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:24:19","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2527a304-c92b-49b8-af0c-af8217d8c0ff","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:24:19","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 16:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 16:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 16:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 16:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:25:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"794fc9a4-8fae-4791-a034-bbf158a34399","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:25:01","userId":null}
{"durationMs":76.59,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a633dce6-c7f0-465c-acc2-0009dc83213d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:25:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":100.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"4f32e6f0-f7ba-4d2e-b4b4-3b6bf6c9b000","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:25:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":402.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:25:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":396.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:25:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"22b9316e-ffa7-474e-9f9e-b66691ae0599","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:25:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":64.12,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/years","requestId":"e27ca155-c5aa-40c4-94bd-5e2b5c5a8c87","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:25:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":62.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/promotions/stats","requestId":"5e3986a6-9652-4760-98b8-c829290df97d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:25:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":78.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"13d361b8-90e1-47e2-b7a4-63bd576e5180","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:25:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":61.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/promotions","requestId":"6c416707-beb4-4dd0-a1e4-4e42b39c5184","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:25:39","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Promote Students","name":null,"type":null},"durationMs":190,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:25:57","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academic/years"},"durationMs":378.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:25:57","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/promotions/stats"},"durationMs":380.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:25:57","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":384.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:25:57","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/promotions"},"durationMs":407.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:25:57","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":27.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"123c65b2-2812-4a3b-920e-58ac438e3cc4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:25:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":56.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"bbb13706-1428-4b03-8c4a-4150a2d3943d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:25:57","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":91.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students?page=1&limit=10&status=TRANSFERRED","requestId":"1dd5ea55-3621-47da-8fca-e35635c7cb5a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:25:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"ID Cards","name":null,"type":null},"durationMs":46,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:25:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Transferred","name":null,"type":null},"durationMs":210,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:25:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Promote Students","name":null,"type":null},"durationMs":138,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:25:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":12891.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:25:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":12943.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:25:59","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6a505c1f-eec8-48f4-a45f-efc40dce800f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:25:59","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:26:00"}
{"durationMs":41.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"95cafdc8-969f-422a-8ec4-9a672fe74cf8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:26:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":61.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"3ec77942-4f25-4692-84c0-4090a2b29521","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:26:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":489.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:26:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":483.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:26:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"85a6f6dc-5053-47d4-9883-490b4179fae8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:26:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:27:00"}
{"durationMs":93.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"abaefede-0397-40b3-9e1f-2bd9cf06821a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:27:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":85.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c3834ab8-37cb-4554-8099-51a1f825cc9c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:27:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":417.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":406.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0176ba11-f712-4255-9035-072fe5226323","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:27:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/mpesa-config","requestId":"65a7b97d-e028-4742-baa8-662feb6d6f07","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:27:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":472.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/recent-activities","requestId":"7526abee-df0d-43d3-86ff-b4a655b5543c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:27:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":473.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/grade-distribution","requestId":"db787502-814d-4f79-a19f-463a00d451e3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:27:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard","navId":"1788787646118-407996","text":"Dashboard"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/students","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/students","href":"/dashboard","navId":"1788787646118-407996","text":"Dashboard","to":"/dashboard"},"durationMs":559,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/students","navId":"1788787646118-407996","to":"/dashboard"},"durationMs":559,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/students","navId":"1788787646118-407996","to":"/dashboard"},"durationMs":690,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":517.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e163d2b1-40d4-465e-888b-da077bd1290a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:27:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":526.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/whatsapp/status","requestId":"48ebb72b-6fb9-4412-ba70-0e8d2945bb10","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:27:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":523.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/revenue-trend","requestId":"774df689-2aa8-4755-8d64-b55fb38011da","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:27:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":579.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communications/sms/settings","requestId":"b9803790-4e31-4f7a-8605-e51d335e3c58","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:27:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":607.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/stats","requestId":"c91331d6-bbec-4c1e-a771-fc2b068fbf94","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:27:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":585.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/dashboard/attendance-trend","requestId":"36ffd43c-f2d2-4443-8a39-5b7087d9853b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:27:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/mpesa-config"},"durationMs":450.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:33","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/recent-activities"},"durationMs":864.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:33","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/grade-distribution"},"durationMs":896.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:33","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/whatsapp/status"},"durationMs":932.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:33","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/revenue-trend"},"durationMs":955.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:33","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communications/sms/settings"},"durationMs":988,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:33","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/stats"},"durationMs":992.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:33","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/dashboard/attendance-trend"},"durationMs":997.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:33","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ce75e017-d980-4d38-9f00-aa3e54586fca","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:27:33","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/settings","navId":"1788787668455-720778","text":"Settings"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"77e27246-bda2-4f56-b684-091d6c81e32b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:27:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","href":"/dashboard/settings","navId":"1788787668455-720778","text":"Settings","to":"/dashboard/settings"},"durationMs":1200,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788787668455-720778","to":"/dashboard/settings"},"durationMs":1200,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard","navId":"1788787668455-720778","to":"/dashboard/settings"},"durationMs":1253,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:27:54","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7e4f1d4a-4f7b-4649-a6f4-5ad6c0d9185f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:27:54","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:28:00"}
{"durationMs":54.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b674f050-2d24-4e89-bc53-2316e93ac702","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:28:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":81.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d1b42d35-ef1c-464f-a3d7-0aac6279ad2f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:28:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":364.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:28:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":383.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:28:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.67,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"512007ab-c6c7-4056-a8c0-3e79da42576c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:28:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/staff","navId":"1788787716144-177141","text":"Staff"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/settings","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:28:40","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"062e5a67-3509-48e7-9e7b-8f9fee49a470","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:28:40","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":74.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff/stats","requestId":"15c78af0-33fb-49ba-bae4-a7ae2647e13e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:28:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":85.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/staff?page=1&limit=20","requestId":"b8c54c6a-f58c-4ed7-9782-3897cb1a14e6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:28:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/settings","href":"/dashboard/staff","navId":"1788787716144-177141","text":"Staff","to":"/dashboard/staff"},"durationMs":1165,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/staff","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:28:41","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/settings","navId":"1788787716144-177141","to":"/dashboard/staff"},"durationMs":1165,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/staff","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:28:41","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/settings","navId":"1788787716144-177141","to":"/dashboard/staff"},"durationMs":1655,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/staff","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:28:41","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/staff/stats"},"durationMs":475.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:28:41","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/staff"},"durationMs":480,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:28:41","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.07,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"592e53ca-5437-4b22-98a9-5e83d50460d8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:28:41","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:29:00"}
{"data":{"id":null,"label":"Add Staff","name":null,"type":"button"},"durationMs":13,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/staff","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:29:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"991f20ea-b8d7-45b7-8f8c-850fa40762bd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:29:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"84927401-e564-46c6-ae0c-7581716d8517","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:29:02","userId":null}
{"durationMs":79.92,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"21d62964-eae7-4dc7-91e1-b84ada043cb8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:29:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":106.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1c6d1c2c-67bc-4add-abe2-b6e8b0c38df8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:29:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":81.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"eff18927-c449-4a13-9b3d-20646765613c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:29:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":88.62,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"d47f85e0-accc-4b94-8c11-129581b5b634","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:29:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":2.96,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/departments","requestId":"9d4b2a14-1e04-497c-91a9-9f5a5ee7217c","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-07 16:29:04","userId":null}
{"durationMs":1.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/departments","requestId":"632830db-b85b-4409-8c1e-5c4bb284ba66","schoolId":null,"service":"cbc-sms","status":404,"timestamp":"2026-09-07 16:29:05","userId":null}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":396.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:29:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":430.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:29:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":433.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:29:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":436.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:29:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":404,"url":"/departments"},"durationMs":601.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:29:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.44,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a67f57c3-b6c4-4c6e-9ca6-0c9c54579a12","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:29:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":404,"url":"/departments"},"durationMs":297.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:29:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9cc15a6e-486e-4bf2-a905-b8b6c98f3aa8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:29:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 16:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 16:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 16:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 16:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:30:00"}
{"durationMs":32.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"38696cfc-6fe7-4d6f-9c89-6f0e4741d042","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:30:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"b3111f7d-f5df-44f6-aa62-eff6ea6b2b2e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:30:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/attendance","navId":"1788787796716-450170","text":"Attendance"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/staff/new","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/staff/new","href":"/dashboard/attendance","navId":"1788787796716-450170","text":"Attendance","to":"/dashboard/attendance"},"durationMs":745,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/staff/new","navId":"1788787796716-450170","to":"/dashboard/attendance"},"durationMs":745,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:01","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.57,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"85831e75-3fee-492e-a7d6-1a795d0b6e39","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:30:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/staff/new","navId":"1788787796716-450170","to":"/dashboard/attendance"},"durationMs":976,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":367.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":372,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2cc5d048-ac86-4adf-8b57-97149a2e9507","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:30:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":1.59,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"72122b07-d351-41ef-b90d-fdd2924fe862","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:30:02","userId":null}
{"durationMs":64.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e0c25a8d-c491-44bb-b45f-93d6c3cb98b4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:30:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":61.81,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"707fe2da-b973-44c6-a5ff-a9a6aa2bf71b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:30:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":359.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":369.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b44468e3-c619-425d-b357-48a453305a60","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:30:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/academics/assessment-analysis","navId":"1788787813004-605893","text":"Assessment Analysis"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/attendance","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"85abb9d3-3941-4dcf-8e5f-5dbf018161d8","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:30:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":41.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"8961b88a-e6f6-4f7b-aad3-0ce38585b81b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:30:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":36.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"33bb28df-250c-4c70-8f3c-a6a309de1a5a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:30:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":91.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/assessments?termId=&limit=100","requestId":"66616811-3157-46f1-8ba5-054ffd114936","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:30:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":113.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/cbc/learning-areas","requestId":"73bdad68-03b1-4bf0-bb23-2b113aa157a6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:30:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/attendance","href":"/dashboard/academics/assessment-analysis","navId":"1788787813004-605893","text":"Assessment Analysis","to":"/dashboard/academics/assessment-analysis"},"durationMs":1206,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/assessment-analysis","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/attendance","navId":"1788787813004-605893","to":"/dashboard/academics/assessment-analysis"},"durationMs":1206,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics/assessment-analysis","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/attendance","navId":"1788787813004-605893","to":"/dashboard/academics/assessment-analysis"},"durationMs":1443,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/assessment-analysis","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":357.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":372.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/assessments"},"durationMs":455.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/cbc/learning-areas"},"durationMs":460.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:30:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ab924775-7c91-4f4a-9e89-5a857c7d20ac","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:30:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:31:00"}
{"durationMs":65.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1432c96a-b8db-490c-b4e3-73ae29b6ac20","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:31:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":58.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d6a15fbd-75b9-4473-9cc6-1eb3dc791a67","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:31:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":376.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:31:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":395,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:31:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5f31ef7e-8cff-4a93-92cd-a37c5f8862ee","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:31:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:32:00"}
{"durationMs":77.39,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"a510994e-2f85-4ed4-80a1-cf6fff9520a9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:32:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":99.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"05ea58cb-3a2d-4e79-a12f-71b390bfb910","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:32:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":417.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:32:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":400.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:32:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.14,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bc843309-b35e-41b4-a1a6-a13b8d5642d6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:32:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:33:00"}
{"durationMs":74.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b9717e66-cab7-4fd2-9ab9-69371cae614d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:33:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":82.54,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"6f32e137-0cc9-4bc9-b3dc-d8a8acf4ac1a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:33:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":384.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:33:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":395.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:33:06","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4f26f179-28b5-430d-90b6-7545992857e4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:33:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:34:00"}
{"durationMs":164.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"31433adb-c1f2-497c-8a40-4d35aa3c0117","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:34:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":176.03,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"939a57e4-d201-4ea1-b8de-d3ed20ad0ff7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:34:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":505.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:34:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":493.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:34:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.29,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"984022d7-e35b-44f5-9671-1dfc429e5590","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:34:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 16:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 16:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 16:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 16:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:35:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1afc0a99-ea37-4a34-8a31-2bfc28c84bc3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:35:01","userId":null}
{"durationMs":56.04,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7c488966-5680-4007-94f2-25ee878090c6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:35:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":78.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3583d10e-32ae-48d5-ab23-c37bf34b4fe0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:35:06","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":354.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:35:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":379.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:35:07","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5d705360-1d46-4c55-96c3-f6da03110e14","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:35:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:36:00"}
{"durationMs":68.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d3acd0b4-3cda-4af3-a2b0-cfa62de92279","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:36:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":76.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"30db2e43-e6f0-49ae-abce-01d05e43680a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:36:07","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":761,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:36:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":780.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:36:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"42b58767-622d-4bac-bdd3-433efcb9026f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:36:08","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:37:00"}
{"durationMs":1.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"49c826f2-e853-4dc8-bcc4-521444830748","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:37:07","userId":null}
{"durationMs":1.6,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1361f46d-57f4-4e2d-9976-3f7ce53f2fbb","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:37:07","userId":null}
{"durationMs":49.09,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"359c491e-9f77-475b-b73d-9068bc8a75da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:37:08","userId":null}
{"durationMs":194.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9f0ef7ad-b46c-423b-ae93-36b451538773","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:37:08","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":190.34,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"1d9eb523-5586-4469-87f2-b2ae265d6d2c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:37:08","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":383.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:37:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":409.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:37:08","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e69110b6-fbe5-40ff-9f8a-027dfb8c91c6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:37:08","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":553.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:37:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":556.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:37:09","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3fe32c94-fc13-4cfa-9475-2ca2e84e2d32","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:37:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:38:00"}
{"durationMs":79.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c7c4d9d5-1e99-4033-b544-9b88d6f22fbb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:38:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":74.94,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d142fc4d-67da-4f47-a70d-a2b31b4f3e5c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:38:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":390.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:38:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":375.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:38:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.7,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b885bf9c-1e55-4453-9e36-0caa71879b8b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:38:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":"radix-:r43:-trigger-students","label":"Students","name":null,"type":"button"},"durationMs":44,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:38:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a7b5a91e-ce4f-4d76-bb75-e5b22976c0c2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:38:24","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":47.45,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school","requestId":"19c43856-30f8-4678-a4a4-5f1bc85e97fe","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:38:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Export PDF","name":null,"type":null},"durationMs":20,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academics/assessment-analysis","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:38:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school"},"durationMs":345.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:38:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":9.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5e39baaa-3a32-49cd-81ed-bf2931add42e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:38:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:39:00"}
{"durationMs":57.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"65879520-f57c-4e0b-aad9-b211bbedcaa1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:39:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":67.23,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"e9fbca83-23be-4f96-ba4e-d930f03fc348","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:39:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":367.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:39:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":354.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:39:10","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":7.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"19b6f716-6054-40c6-98d4-b3a2dde6caad","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:39:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 16:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 16:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 16:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 16:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:40:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e0cb1cef-ac18-4c7e-b1f7-cd615a2f7acf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:40:02","userId":null}
{"durationMs":107.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"5a43dea1-84a1-407b-8a6c-7b3f3b70478e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:40:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":206.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"839db540-0f1d-478d-9d40-d3b716af170a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:40:09","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":30.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/years","requestId":"e58b095d-5398-4bd5-9565-9208840c4b68","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:40:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":86.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/holidays?year=2026","requestId":"e747622e-2af9-47dc-a25d-036e0555773d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:40:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":95.11,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/events?startDate=2026-08-24T21:00:00.000Z&endDate=2026-10-07T20:59:59.999Z","requestId":"5cf62e50-0c9a-4896-bf46-29f8e66696db","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:40:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":81.05,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/calendar/summary","requestId":"f75eca7e-e561-4b07-bf76-368ad4769fc6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:40:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":398.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/academic/calendar","navId":"1788788406594-294404","text":"Calendar & Sessions"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/assessment-analysis","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":611.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/academics/assessment-analysis","href":"/dashboard/academic/calendar","navId":"1788788406594-294404","text":"Calendar & Sessions","to":"/dashboard/academic/calendar"},"durationMs":621,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academic/calendar","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/academics/assessment-analysis","navId":"1788788406594-294404","to":"/dashboard/academic/calendar"},"durationMs":621,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academic/calendar","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/academics/assessment-analysis","navId":"1788788406594-294404","to":"/dashboard/academic/calendar"},"durationMs":738,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academic/calendar","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3c15b807-fd64-43b7-bc71-1fbf39c8341b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:40:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/years"},"durationMs":496.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/calendar/holidays"},"durationMs":500.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/calendar/events"},"durationMs":504.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/calendar/summary"},"durationMs":509.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.56,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4995b04b-4c83-42ff-b253-d87f9164decf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:40:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Manage Academic Sessions","name":null,"type":null},"durationMs":128,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.38,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3d7aa96e-0668-4f1a-97e6-f3e5b4ac63e6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:40:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Create First Academic Year","name":null,"type":null},"durationMs":442,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:24","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.67,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ba01d9a1-1fb8-4d8d-ac0c-fc3a0dcbf654","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:40:24","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Cancel","name":null,"type":"button"},"durationMs":30,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/academic/calendar","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:40:26","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"61ae5c57-750f-4c47-91c4-dfb93bd0e713","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:40:26","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:41:00"}
{"durationMs":42.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"305dc82d-ada6-4beb-b0bd-077bb4f0272e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:41:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":48.62,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"347ecbfa-c00e-474b-86fa-325aba49371b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:41:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":349.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:41:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":340.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:41:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"f2de25e1-1162-4464-8eaa-266d91419f27","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:41:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/academics/cbc-grades","navId":"1788788506284-238701","text":"CBC Grades & Results"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academic/calendar","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:41:50","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":25.49,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"164d0a77-a35b-44f2-8c07-cd40197c6696","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:41:50","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":23.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academic/terms","requestId":"86966ac4-68e6-48ee-94ea-ff5f9a5d3976","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:41:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":48.82,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"1d2625d8-3487-4e13-9141-10d1ab9af3b1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:41:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":40.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"383d9ff9-0ab6-488a-a867-a1ac121e57a3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:41:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":62.32,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"6175563a-9546-4f40-b280-00ea3db7864c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:41:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":52.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/students","requestId":"18846a17-132b-425e-8e41-6230426c8339","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:41:51","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/academic/calendar","href":"/dashboard/academics/cbc-grades","navId":"1788788506284-238701","text":"CBC Grades & Results","to":"/dashboard/academics/cbc-grades"},"durationMs":1374,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/academics/cbc-grades","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:41:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/academic/calendar","navId":"1788788506284-238701","to":"/dashboard/academics/cbc-grades"},"durationMs":1374,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/academics/cbc-grades","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:41:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/academic/calendar","navId":"1788788506284-238701","to":"/dashboard/academics/cbc-grades"},"durationMs":1657,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/academics/cbc-grades","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:41:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":409.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:41:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":411,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:41:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":417.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:41:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/students"},"durationMs":420.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:41:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academic/terms"},"durationMs":425.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:41:52","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"cb9a9bef-b9e3-4a7c-85e8-41fd38d9bbe3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:41:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":34.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/teacher/my-streams","requestId":"9055bb73-6afc-40bf-bb74-1f9e8f18e932","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":400,"timestamp":"2026-09-07 16:41:52","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":400,"url":"/teacher/my-streams"},"durationMs":323.7,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:41:53","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"bdb6fced-ffa2-424a-9fa9-21b4c750155e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:41:53","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:42:00"}
{"durationMs":42.25,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"3c2b2870-ea78-4b68-8a6a-c1acc1f6b635","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:42:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/senior/pathways","navId":"1788788520431-133856","text":"Pathways"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/academics/cbc-grades","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:42:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/academics/cbc-grades","href":"/dashboard/senior/pathways","navId":"1788788520431-133856","text":"Pathways","to":"/dashboard/billing"},"durationMs":539,"event":"NAV_PATH_CHANGE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route path change","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:42:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/academics/cbc-grades","navId":"1788788520431-133856","to":"/dashboard/billing"},"durationMs":539,"event":"NAV_STALL","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation stall before route change","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:42:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"from":"/dashboard/academics/cbc-grades","navId":"1788788520431-133856","to":"/dashboard/billing"},"durationMs":580,"event":"NAV_RENDER","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Route rendered","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:42:04","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":26.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"40534902-8cbc-444b-8e48-da83b2de7957","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:42:04","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/billing"},"durationMs":359.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:42:05","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.2,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"0de348c6-c616-4540-9fd7-f4ad6ee56133","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:42:05","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":54.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"3adaa560-21d9-412c-bdbb-9997ce57d508","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:42:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"48ad8771-f022-46ba-92f1-c5e70b734a9c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:42:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":348.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:42:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":319.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:42:11","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":13.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"a681aa31-d33e-4ffe-a333-4b705586b0fd","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:42:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"href":"/dashboard/senior/kssea-reports","navId":"1788788546831-907239","text":"KSSEA Reports"},"durationMs":null,"event":"NAV_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Navigation click","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:42:31","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.18,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"6ed3cb49-777c-4f5f-9436-f954989663a9","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:42:31","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"View all (98)","name":null,"type":"button"},"durationMs":155,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:42:47","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"fc3ad155-d1d6-4803-ae2a-269f3deb917f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:42:47","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Pay with M-Pesa","name":null,"type":null},"durationMs":690,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:42:58","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.47,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"83d3b05e-e0ce-4df6-a147-9873f4a1e847","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:42:58","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:43:00"}
{"durationMs":15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/school/billing/invoices/pay","requestId":"11bcce8d-9fdf-4942-a9b8-2ff904612961","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":404,"timestamp":"2026-09-07 16:43:01","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Send STK Push","name":null,"type":null},"durationMs":34,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:43:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":404,"url":"/school/billing/invoices/pay"},"durationMs":306.2,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:43:02","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"763c8024-1e38-4217-99e8-cc5cf6286a90","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:43:02","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":45.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fe216256-df2e-42ae-8db7-161ff396be7e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:43:10","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9d92ecd4-72c4-48b6-99bb-b8d53395d8f7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:43:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":346,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:43:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":330,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:43:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.84,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"ed0f4d85-e344-4e32-9c4e-237b93add6b4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:43:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:44:00"}
{"durationMs":53.98,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d1518d38-8b3d-4f46-8eee-3b6f30f075db","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:44:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":43.13,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"94997c94-4589-4c1c-8ea0-bd2a17585963","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:44:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":398.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:44:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":424.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:44:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7295e6d4-0a2e-4482-9b73-b1494cf061ac","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:44:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":22.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/school/billing/invoices/pay","requestId":"cdb374ad-426c-490f-9306-7b9767d7aba6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":404,"timestamp":"2026-09-07 16:44:43","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Send STK Push","name":null,"type":null},"durationMs":27,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:44:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"POST","status":404,"url":"/school/billing/invoices/pay"},"durationMs":385.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:44:44","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"493346d6-20e4-4b39-87bb-ebf1f3f9e050","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:44:44","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"id":null,"label":"Cancel","name":null,"type":null},"durationMs":50,"event":"UI_CLICK","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT Action click","path":"/dashboard/billing","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:44:56","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.48,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7234dfba-dd7e-4a44-994e-5793fd88f74d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:44:56","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 16:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 16:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 16:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 16:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:45:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9466df44-f52e-4d59-b4c6-547f0f1faa10","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:45:02","userId":null}
{"durationMs":47.91,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"94eabafc-9de7-4714-b460-452bce80672a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:45:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":32.28,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"75efe3f1-02b5-4000-be78-7ff3a0ba7b73","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:45:11","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":338.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:45:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":326.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:45:12","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":12.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"7392c72f-55be-4bc5-90d6-70b808d4b918","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:45:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:46:00"}
{"durationMs":50.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"efa3bfad-7506-4081-b53f-dbf669a53a35","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:46:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":46.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"801c81c4-75d6-4e56-b453-0a5f1521039f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:46:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":354.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:46:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":366.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:46:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":20.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"553a4721-ec56-46a4-ba98-cb7e143885bb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:46:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:47:00"}
{"durationMs":57.08,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"ecb47ef8-10c6-4507-be67-f1002899af22","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:47:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":47.3,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"c4a417f1-eb40-43cb-be1c-861215bc736f","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:47:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":353.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:47:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":437,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:47:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.75,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"559bc501-814e-4bf4-a73f-806178db3c92","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:47:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:48:00"}
{"durationMs":58.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"78f17688-4bd6-40ab-8893-ad2daaa6e9a0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:48:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"dbac603e-7e57-41f9-9bbf-1f64d3fad604","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:48:12","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":358.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:48:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":419.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:48:13","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"b52dd83d-6623-4d62-ba66-8028bd0432f1","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:48:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:49:00"}
{"durationMs":64.06,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"1c9e282b-ed14-415f-8dc5-390c8f04ccbf","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:49:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":31.55,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"9c236836-a623-4cb9-8617-09420beb519e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:49:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":364.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:49:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":412.2,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:49:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16.27,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"89093dcb-b7ee-4c8f-bbec-a7f4c784d54b","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:49:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 16:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 16:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 16:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 16:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:50:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b825e05b-b566-4480-9f09-a387aa95e287","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:50:02","userId":null}
{"durationMs":73.43,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"56dbc98d-146a-4546-8505-e47afbdb6c9e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:50:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":36.21,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"43786d20-0e18-4a6c-aa7f-3446b114650a","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:50:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":372.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:50:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":330.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:50:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":15.68,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"3504883e-0b4a-4abe-8877-4d1de6dde497","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:50:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:51:00"}
{"durationMs":66.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"f9adedeb-7b6b-49cf-be26-d73f880cf2f6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:51:13","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":38.72,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2605054d-aedd-46a6-b4ac-5f4a131d25de","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:51:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":362.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:51:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":399.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:51:14","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"5c6e1aea-63b4-492d-a7e5-f6ffb3499f00","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:51:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:52:00"}
{"durationMs":1.42,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c0033c0d-cf55-4ce2-9ea7-1d8865d65364","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:52:14","userId":null}
{"durationMs":27.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"0f8a2379-6cee-4d4e-ae3e-b3be0c81eff4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:52:14","userId":null}
{"durationMs":3.62,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"88132d79-e76a-4897-8941-4bd596ce70f3","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 16:52:14","userId":null}
{"durationMs":35.85,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"40511192-8a6e-42b5-bf5a-1bb2eeaa670d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:52:14","userId":null}
{"durationMs":67.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"89487ffc-b51a-4aea-be65-90ab75760927","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:52:14","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"d323fe16-8f88-4559-b8ad-9e379b7054ab","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:52:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":298.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:52:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":291.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:52:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":361.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:52:15","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":8.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"680ca1df-7ebc-49be-9915-77634bc0acd3","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:52:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":323,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:52:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9dd9a280-7cc7-417e-9839-248c63573484","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:52:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:53:00"}
{"durationMs":57.64,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"37a0e625-7fcd-4865-8001-27f40a462840","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:53:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":72.61,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"0c13c8aa-b5e8-4724-a0af-f382fa33c8c4","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:53:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":354.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:53:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":355.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:53:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.71,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"9299b39c-7cbe-4678-8d6d-e61fd7241d5e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:53:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:54:00"}
{"durationMs":64.96,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"149abafd-80fd-409b-8568-b175eee5c79c","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:54:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":42.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"deebd578-c1ff-4c5e-8c9b-8625555e0e78","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:54:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":391.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:54:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":450.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:54:16","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":14.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"606ba49b-3259-436d-bab0-dfd160ee0541","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:54:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 16:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 16:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 16:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 16:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:55:00"}
{"durationMs":1.23,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce0fde98-b6d7-4971-92e0-9d2f8fe87d82","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:55:02","userId":null}
{"durationMs":61.35,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c865f7bd-2350-43fc-b8eb-47a73160032d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:55:15","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":36.19,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2ff01384-ab52-4a57-8931-462019001ccb","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:55:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":367.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:55:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":397.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:55:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"8d13e592-5faf-4323-8bc1-58274c273881","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:55:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:56:00"}
{"durationMs":58.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"c8094dd6-1a67-4a02-8578-f0d9a34f8029","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:56:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":40.1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"f5d76740-08aa-4fe3-84de-db1dbf9ff1ec","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:56:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":449.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:56:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":334.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:56:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":17.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e5fb5804-6868-41f0-ae23-f8c477d2e0aa","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:56:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:57:00"}
{"durationMs":42.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"d3dde4eb-de74-40ce-b2e4-c418bf8d6c97","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:57:16","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":33.26,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7a0af8e0-ec40-4470-ad90-4c8b3db782d0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:57:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":337.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:57:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":326.8,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:57:17","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.46,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"2cec7098-87fa-4fd4-a61f-c46074c6e692","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:57:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:58:00"}
{"durationMs":59.93,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"9341e139-e233-43da-97c5-3a2f906f7eb7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:58:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":41.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"2705b22f-4373-497b-8ef5-5c96b98510a5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 16:58:17","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":357.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:58:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":338.4,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 16:58:18","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":10.4,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"4bd7552e-79e3-41cb-ba89-ed7e44bfc3f6","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 16:58:18","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 16:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 17:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 17:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 17:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 17:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:00:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a3244ed8-459f-4cb3-9015-98a00564bd87","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 17:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 17:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 17:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 17:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:05:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a521703f-337a-4278-a2d8-608d18034e5b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 17:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 17:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 17:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 17:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:10:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a6b5a7db-a0e0-4bab-95ed-efc238e59ed7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 17:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 17:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 17:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 17:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:15:00"}
{"durationMs":0.98,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"18c92099-325d-4ccc-a74c-532703f4ff2d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 17:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 17:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 17:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 17:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:20:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae0a60b2-1d27-401d-8c18-87eae9b5d953","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 17:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 17:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 17:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 17:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:25:00"}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2ad2339e-c475-43bc-86fd-b4e5afcf029b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 17:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 17:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 17:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 17:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:30:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8e6d4528-fe64-42ae-b7d4-a03649407aa9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:31:00"}
{"durationMs":1.74,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"16987885-e86d-4c92-a838-940e2e10c34f","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":0.89,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?date=2026-09-07","requestId":"f321f203-aafb-4550-8a91-5fc6797ec8c0","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":0.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"1bcbbb2e-be50-4181-8717-143d0dfc1050","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":0.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"63335a28-3c0b-4668-a542-03624e822281","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":0.79,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"b7818bb0-0b9f-4dbf-91bc-b6f04af0210b","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":0.77,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"bd181db8-85ba-42c6-8f80-3c2a96a8a306","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":0.76,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"0942cd8b-00ec-46e2-8953-d1c9c275a60d","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":0.87,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"84e943a6-37eb-444a-8e14-c2eb4853acf4","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":1.65,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"989587de-c9bf-435f-a921-6214dc067665","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":1.36,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"707f6dac-0ddc-4fc8-bf9c-129b4b81dd14","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":0.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"85c8d1a0-f80e-4c56-bf03-42cd89309628","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":0.88,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"5cfb50c1-2e07-4c02-bf1c-9ccb8b7c6ba6","schoolId":null,"service":"cbc-sms","status":401,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":125.1,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"dec883f3-a471-49cc-a9a7-28b88ff8945a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":130.01,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/auth/refresh-token","requestId":"b7caad0d-2677-448b-abeb-87bfec7f45c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:31:27","userId":null}
{"durationMs":87.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/streams","requestId":"9ea9baa3-afb0-4e1d-bc8e-b1561924554d","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:31:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":110.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/academics/classes","requestId":"dd31d8d3-a201-4ede-b082-e575af3e6c5e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:31:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":143.78,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"a8762f26-a31f-4890-af03-1d351e89e9e7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 17:31:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":144.41,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/billing","requestId":"34a6c4b6-5ada-40d7-8243-cc86e1bc7916","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:31:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/school/billing"},"durationMs":1447.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":1462.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1458.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1463.5,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":1468.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:28","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":52.24,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"894050c3-5056-4c34-94f4-c2fe2dbd39b5","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:31:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":201.17,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"7c5ab222-f0ca-40b0-a51f-fbbefcbe7fa0","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 17:31:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":207.97,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"9ef673f7-309d-4d7c-9235-ef75bff84399","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 17:31:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":223.9,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"fc69d4b5-58ee-455c-8f6b-0ed9a6572c13","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 17:31:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":253,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/attendance/sessions?date=2026-09-07","requestId":"37d478ac-cd92-4f9d-8f0a-802b10b8521e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 17:31:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":64.31,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/school/enabled-modules","requestId":"687ee6f9-ee00-4a93-bd4b-fc4df65111d7","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 17:31:28","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":52.5,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications","requestId":"711b6289-92b0-40ea-8d0d-af1730bfd340","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 17:31:29","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":55.53,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/inbox-count","requestId":"167fb749-b024-4178-a1be-6e5b9992b9c2","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 17:31:29","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":46.15,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/v1/communication/notifications/unread-count","requestId":"bfebddfb-c777-4472-8e96-ced6e66ce97e","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":304,"timestamp":"2026-09-07 17:31:29","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/academics/streams"},"durationMs":1372.1,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/attendance/sessions"},"durationMs":1377.4,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/academics/classes"},"durationMs":1398.6,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/school/enabled-modules"},"durationMs":1714.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/inbox-count"},"durationMs":1718.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications/unread-count"},"durationMs":1721.9,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":401,"url":"/communication/notifications"},"durationMs":1723.8,"event":"API_ERROR","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API error","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/streams"},"durationMs":484.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/academics/classes"},"durationMs":489.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/attendance/sessions"},"durationMs":631.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":876.3,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":910.5,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":923.7,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":926.9,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:29","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":16,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"e8bc7855-adbe-4cf5-aba1-b3e9951db274","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:31:29","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/billing"},"durationMs":633.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/school/enabled-modules"},"durationMs":646.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/inbox-count"},"durationMs":703.1,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications"},"durationMs":708,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"data":{"method":"GET","status":200,"url":"/communication/notifications/unread-count"},"durationMs":724.6,"event":"API_RESPONSE","ip":"154.79.248.144","level":"info","message":"CLIENT_EVENT API response","path":null,"schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","timestamp":"2026-09-07 17:31:30","userAgent":"Mozilla/5.0 (X11; CrOS x86_64 14816.131.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"durationMs":11.66,"ip":"154.79.248.144","level":"info","message":"HTTP_REQUEST","method":"POST","path":"/api/v1/client-logs","requestId":"c66e83e4-25cc-4ecf-8697-213d8f00a720","schoolId":"4b511e79-1032-4356-b941-9b218b56515f","service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:31:30","userId":"5e704ebc-4cb1-4ce3-91a8-e68f118142b4"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 17:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 17:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 17:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 17:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:35:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a7e6e627-116f-48c8-82de-aaff78e5b815","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 17:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 17:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 17:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 17:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:40:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7bff1b39-5d5e-44f9-a165-b020f8492159","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 17:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 17:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 17:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 17:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:45:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bde6f820-ed2b-4382-b651-823567d38554","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 17:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 17:50:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 17:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 17:50:00","totalConnections":1}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3137dd35-2e6f-454a-908b-c0b60a229151","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 17:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 17:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 17:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 17:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:55:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7b3dc71b-7efd-4922-a499-7a0d081344d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 17:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 17:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 18:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 18:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 18:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 18:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:00:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e14ea404-f206-4910-a911-334f60ef5737","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 18:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 18:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 18:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 18:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 18:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:05:00"}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54786588-98ea-4a23-a048-ce37d0f20b48","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 18:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:07:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 18:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 18:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 18:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 18:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:10:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"59168aa4-d0e2-4841-a9e1-dd21d101a42d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 18:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 18:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 18:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 18:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 18:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:15:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1dcc4567-8ece-4dae-acc6-bb93f6670fb8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 18:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 18:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 18:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 18:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 18:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:20:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"271b79f2-f678-4d29-adf0-27a67a56126a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 18:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 18:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 18:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 18:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 18:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:25:00"}
{"durationMs":1.14,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"51fd16c6-6637-48fe-97a0-5bbe8a2fc4cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 18:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 18:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 18:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 18:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 18:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:30:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4589b066-77d2-4d8c-b2cd-4067913ebae2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 18:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:31:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 18:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 18:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 18:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 18:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:35:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9cfb89e1-0ff1-46bd-8e93-6096f7ed9d7f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 18:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 18:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 18:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 18:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 18:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:40:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4629f4a6-f5b5-4777-a98f-dfb04e11d868","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 18:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 18:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 18:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 18:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 18:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:45:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f134e08e-b64e-4609-947f-883fd8c9758e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 18:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 18:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 18:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 18:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 18:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:50:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"68507817-1b74-4ba1-a216-6af29e617aa6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 18:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 18:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 18:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 18:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 18:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:55:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"66cdf736-4914-408d-8dfa-b5d348eb335c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 18:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 18:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 19:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 19:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 19:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 19:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:00:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"115149e8-9b5d-425a-8c72-4af83ca7b724","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 19:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 19:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 19:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 19:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 19:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:05:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"611f135a-9b68-4d05-936b-fea36cfed95c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 19:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 19:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 19:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 19:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 19:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:10:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"95ef39ce-0593-462a-9fe5-8bd1d8bbb7d7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 19:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 19:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 19:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 19:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 19:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:15:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"87300aa5-9d15-4c36-93d4-77f32a4572c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 19:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 19:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 19:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 19:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 19:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:20:00"}
{"durationMs":1.15,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"76c80093-d15a-4734-a8f7-ea964a597380","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 19:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 19:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 19:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 19:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 19:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:25:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"99574a6d-2d26-495a-b43f-d1d80c22a25b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 19:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 19:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 19:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 19:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 19:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:30:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"603769ca-ec54-41d8-bfbc-608abedb2197","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 19:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 19:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 19:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 19:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 19:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:35:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3d33cc6c-214a-460e-a931-811d077edda7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 19:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 19:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 19:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 19:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 19:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:40:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c9efbe77-5efa-43a3-bfac-ecb8ea2e6f7b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 19:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 19:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 19:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 19:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 19:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:45:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c68f4281-2e64-45b7-814c-932d76a1a2aa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 19:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 19:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 19:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 19:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 19:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:50:00"}
{"durationMs":1.51,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b7b7f5e8-34d2-4c6b-aba2-dc4e0e02d525","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 19:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 19:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 19:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 19:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 19:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:55:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d7f87007-4c05-40a9-aecc-d51155afe78c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 19:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 19:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 20:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 20:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 20:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 20:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:00:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"44185ba9-2621-46e3-9189-a7ce37893c7d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 20:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 20:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 20:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 20:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 20:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:05:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"411ff254-ab00-4d18-80b5-7d5b30b042cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 20:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 20:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 20:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 20:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 20:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:10:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b4c5a7f7-6c16-4c58-94cb-15e8e59645bd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 20:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 20:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 20:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 20:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 20:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:15:00"}
{"durationMs":0.95,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c26faf2f-203e-4a9a-b0cb-441bf11c1030","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 20:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 20:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 20:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 20:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 20:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:20:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"92dad944-9dc6-4429-bbfc-662f65029c58","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 20:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 20:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 20:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 20:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 20:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:25:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d4397531-7b55-4cd9-b073-a38edcbec0fc","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 20:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 20:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 20:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 20:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 20:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:30:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"96d5814c-a8ad-465c-8a87-ff01022c33f9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 20:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 20:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 20:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 20:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 20:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:35:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8485a3d1-eeae-4624-b01b-43c2d757270f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 20:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 20:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 20:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 20:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 20:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:40:00"}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0f87ea8-58d0-4f4a-89c8-b9e57e6feba6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 20:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 20:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 20:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 20:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 20:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:45:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b16daa2b-e354-4f25-ba5e-151d0878c2c9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 20:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 20:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 20:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 20:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 20:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:50:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"113f4835-223d-48ad-bad2-905f91d5fcdd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 20:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 20:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 20:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 20:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 20:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:55:00"}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5fbe6d0d-fc86-4bf3-8e45-3e77e281547a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 20:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 20:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 21:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 21:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 21:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 21:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:00:00"}
{"durationMs":1.6,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"479bf25f-4fe0-43fb-a038-a4554e7e775f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 21:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 21:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 21:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 21:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 21:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:05:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"03d94f6f-f436-4363-949b-3f91346ca6d4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 21:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 21:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 21:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 21:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 21:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:10:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1603b3e2-4d0a-42f5-b65e-8b60fa2dcc0b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 21:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 21:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 21:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 21:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 21:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:15:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4b47fb8b-2e34-4f5e-8a42-cfa1ec1be0ba","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 21:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 21:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 21:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 21:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 21:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:20:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33f9f804-d4a9-49d6-acac-089b3819ffa3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 21:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 21:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 21:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 21:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 21:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:25:00"}
{"durationMs":1.38,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9f607a51-dec3-4b9c-9943-e58390d6409b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 21:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 21:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 21:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 21:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 21:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:30:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fb0d5a06-fdb0-4e00-a44e-f6c77df80e7e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 21:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 21:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 21:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 21:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 21:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:35:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f0fd76b6-1dc7-432c-880f-746d0fa17869","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 21:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 21:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 21:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 21:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 21:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:40:00"}
{"durationMs":1.33,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"afa5dd61-24bd-428b-b911-87252a47717f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 21:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 21:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 21:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 21:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 21:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:45:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"67970b54-8aee-48fe-b95d-0cd640617072","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 21:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 21:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 21:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 21:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 21:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:50:00"}
{"durationMs":1.3,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4ffd5da9-aa59-4d55-8f40-2b5c6fa7dc85","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 21:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 21:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 21:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 21:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 21:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:55:00"}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"85246ccc-ab3e-4fdd-98c3-8a3d72509ca6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 21:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 21:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 22:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 22:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 22:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 22:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:00:00"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0f23a50c-6c0b-4dd5-b8c3-071ff9b9b494","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 22:00:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 22:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 22:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 22:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 22:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:05:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d62d6dfc-acb1-4916-bf4a-3878402156c6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 22:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 22:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 22:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 22:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 22:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:10:00"}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9966d271-a2e4-40cf-b2c1-613d4cfb80eb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 22:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 22:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 22:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 22:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 22:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:15:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"df9ded5f-824a-4f8a-9e0f-4df152289309","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 22:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 22:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 22:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 22:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 22:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:20:00"}
{"durationMs":1.16,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3e57c12c-0085-46db-b31a-a3cdcd34b1b8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 22:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 22:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 22:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 22:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 22:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:25:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ae7aa9a6-2796-4b93-b974-f5d2ed98751a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 22:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 22:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 22:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 22:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 22:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:30:00"}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"00c61183-b333-4490-8ba1-2207f3883c7f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 22:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 22:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 22:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 22:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 22:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:35:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8b9d0b1a-8970-4d7a-95e2-181acc9da8ec","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 22:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 22:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 22:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 22:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 22:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:40:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d149bb3-f91f-4e80-8b41-92b932712e5a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 22:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 22:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 22:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 22:45:01"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 22:45:01","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:45:01"}
{"durationMs":0.94,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2b1f862f-84da-4b1d-8e8c-bc85431f297b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 22:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 22:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 22:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 22:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 22:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:50:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7496a819-67e0-4c08-b043-5013075b00d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 22:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 22:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 22:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 22:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 22:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:55:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ea3e95ae-d38c-421f-9fe2-f78d32f119db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 22:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 22:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 23:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 23:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 23:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 23:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:00:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"eebdfd8b-b3c7-43d3-b6d3-f5fcdcdfaad3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 23:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 23:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 23:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 23:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 23:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:05:00"}
{"durationMs":0.89,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6bc525b1-152a-4206-8c7c-69f6e3c94622","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 23:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:09:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 23:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 23:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 23:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 23:10:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81fd26aa-9340-4d25-a688-7891c88fcb41","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 23:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 23:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 23:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 23:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 23:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:15:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"81d5d03c-a875-47e5-be02-494b394298da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 23:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 23:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 23:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 23:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 23:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:20:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b80954fe-0510-49c5-975c-a40d8c452b16","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 23:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 23:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 23:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 23:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 23:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:25:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b5f4a85b-9fbf-49cf-8f73-db092c4348f2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 23:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 23:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 23:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 23:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 23:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:30:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3baca602-f7ba-4e11-9c9b-4747d86b2cbe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 23:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 23:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 23:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 23:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 23:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:35:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"167ed413-5992-449e-8735-c262854d0d6d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 23:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 23:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 23:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 23:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 23:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:40:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11951dfa-7413-4062-a8e2-e959348a7fe0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 23:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 23:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 23:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 23:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 23:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:45:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7ae6aef4-e356-493b-9bd6-33b3c6ac5578","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 23:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 23:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 23:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 23:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 23:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:50:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e9f5e269-2bb2-41d2-91d9-eb340204eb43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 23:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-07 23:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-07 23:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-07 23:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-07 23:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:55:00"}
{"durationMs":1.5,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d1d24561-1d60-44e2-9b96-fae8083bda7f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-07 23:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-07 23:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 00:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 00:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 00:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 00:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:00:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"68473052-d523-4c64-bad2-fd408196c5d8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 00:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 00:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 00:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 00:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 00:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:05:00"}
{"durationMs":1.25,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"91dc524b-0c24-4583-a5b5-4ee3d4384162","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 00:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 00:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 00:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 00:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 00:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:10:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5ae8a458-0946-4fa0-b511-bc06834e63cd","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 00:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 00:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 00:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 00:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 00:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:15:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"afaa78c4-44ba-4f53-b942-0224dca64232","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 00:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 00:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 00:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 00:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 00:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:20:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1f8d47ab-ef44-44ff-b02c-5a0fcd8f8968","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 00:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 00:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 00:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 00:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 00:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:25:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"cdb2d869-2567-4ad0-9563-6aa99ab8dfd5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 00:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 00:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 00:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 00:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 00:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:30:00"}
{"durationMs":1.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d580bae9-02fa-4f86-83df-097445000443","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 00:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 00:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 00:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 00:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 00:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:35:00"}
{"durationMs":1.34,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"54dd9078-2140-45bc-a424-5275f2cfeff9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 00:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 00:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 00:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 00:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 00:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:40:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"82fc0b7e-2635-4525-a38d-c5c9b787c63e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 00:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 00:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 00:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 00:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 00:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:45:00"}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5a48ff18-519a-408d-8198-6d0ec3cf2ff0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 00:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 00:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 00:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 00:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 00:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:50:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d96526a8-d2a4-4df4-81aa-64325bf6b690","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 00:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 00:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 00:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 00:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 00:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:55:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24aa76dd-b947-466f-bf31-69f948ba2822","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 00:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 00:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 01:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 01:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 01:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 01:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:00:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0347ff4e-0474-443e-962a-18fd99c2d1f4","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 01:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 01:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 01:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 01:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 01:05:00","totalConnections":1}
{"durationMs":1.31,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1ecd26b7-fb87-4409-871b-6d6cc6ff38d6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 01:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 01:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 01:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 01:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 01:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:10:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b0094821-3b43-496a-bba1-9fc1587365ad","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 01:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 01:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 01:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 01:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 01:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:15:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"21c2e0a1-9341-4ef4-840b-26f1672ba953","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 01:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 01:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 01:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 01:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 01:20:00","totalConnections":1}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f7c180c3-d611-4fd9-8b2c-f9daeb6c4648","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 01:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 01:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 01:25:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 01:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 01:25:00","totalConnections":1}
{"durationMs":0.83,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"2f714dc2-8054-4386-b330-b5a62717a31e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 01:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 01:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 01:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 01:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 01:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:30:00"}
{"durationMs":0.82,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e2893652-03db-4773-a94c-21298fb0dc90","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 01:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 01:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 01:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 01:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 01:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:35:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e966425c-017c-4b88-b0bf-a278eebbf958","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 01:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 01:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 01:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 01:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 01:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:40:00"}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d267e762-4dc2-4834-afac-8ad2d926bba9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 01:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 01:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 01:45:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 01:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 01:45:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0434d6de-62a8-40ac-8fe3-be927ebde906","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 01:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 01:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 01:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 01:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 01:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:50:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"63a2a46c-2ab3-410c-8c40-794bac1a5545","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 01:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 01:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 01:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 01:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 01:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:55:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"7bca25c4-ca65-4ff7-b999-c2dacb7743d3","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 01:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 01:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 02:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 02:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 02:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 02:00:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e8248976-215b-4188-9b27-bdaae8f60dd6","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 02:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 02:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 02:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 02:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 02:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:05:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fa647ad2-4a65-4c18-b1bb-3ef702d4bb93","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 02:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 02:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 02:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 02:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 02:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:10:00"}
{"durationMs":1.01,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ce32cfef-57e5-4be6-b0e0-09baded767db","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 02:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 02:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 02:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 02:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 02:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:15:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"28951536-357d-48ef-85f0-750fb218927b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 02:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 02:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 02:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 02:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 02:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:20:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"11e84ce2-5e31-4666-8477-6e1cf3c41419","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 02:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 02:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 02:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 02:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 02:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:25:00"}
{"durationMs":1.22,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"39d0c998-f4fb-406d-8435-0c78f94e5dee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 02:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:29:01"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 02:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 02:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 02:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 02:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:30:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4552bd44-427f-4073-9870-1a19577ad705","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 02:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 02:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 02:35:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 02:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 02:35:00","totalConnections":1}
{"durationMs":1.29,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fc038c4d-589e-420b-b2cc-a0b7d4ba8b5f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 02:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 02:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 02:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 02:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 02:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:40:00"}
{"durationMs":1.08,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c689d06d-0269-4bb4-b627-132618b92092","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 02:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 02:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 02:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 02:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 02:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:45:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4185e887-87a4-46db-b6c5-fda93a9eb98e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 02:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 02:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 02:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 02:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 02:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:50:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"396c4c29-094b-489c-9049-313849f854ca","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 02:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 02:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 02:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 02:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 02:55:00","totalConnections":1}
{"durationMs":0.79,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"a5cb7ba2-5956-4733-9e5f-5c52a1f00602","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 02:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 02:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 03:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 03:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 03:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 03:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:00:00"}
{"durationMs":1.21,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"646979ce-0c0f-45d8-b041-b2874351845b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 03:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 03:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 03:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 03:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 03:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:05:00"}
{"durationMs":1.04,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8a66100c-bc6a-4eef-9bcd-29f80ec71c6d","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 03:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 03:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 03:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 03:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 03:10:00","totalConnections":1}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e18d84fc-9e16-41ba-b9c9-c5b74b039356","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 03:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 03:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 03:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 03:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 03:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:15:00"}
{"durationMs":1.43,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bcecec7c-1026-42b9-9f87-f55d8cf88ff9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 03:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 03:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 03:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 03:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 03:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:20:00"}
{"durationMs":1.53,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"33c528f5-353f-478d-a5fa-0b9ccb86325a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 03:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 03:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 03:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 03:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 03:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:25:00"}
{"durationMs":1.54,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b58043c0-8b95-4f47-9b0a-d1cd4c43f376","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 03:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 03:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 03:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 03:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 03:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:30:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"694502c1-e5e2-4ec0-87a8-fc23b0e6d1a9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 03:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 03:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 03:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 03:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 03:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:35:00"}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1616fbea-3c26-4e89-9628-159a59236f47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 03:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 03:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 03:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 03:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 03:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:40:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bb4e6777-5d01-45f5-a88b-09828029f6bf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 03:40:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 03:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 03:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 03:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 03:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:45:00"}
{"durationMs":1.56,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"be23673f-4bf0-4593-8f91-3ea811a9c1fe","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 03:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 03:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 03:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 03:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 03:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:50:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bdd57d7d-f9f2-40e5-9e29-7ebbe20d11da","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 03:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 03:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 03:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 03:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 03:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:55:00"}
{"durationMs":1.24,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f2a119db-2153-4bae-98c2-c965e883ca24","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 03:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 03:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 04:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 04:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 04:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 04:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:00:00"}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e4933bcd-8ba3-4d8c-b8c4-a09421a897e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 04:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 04:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 04:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 04:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 04:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:05:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"dca254d9-9ae1-4a0b-a82c-91db7cea7dae","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 04:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 04:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 04:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 04:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 04:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:10:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24a13c3b-910e-4e9c-a02d-f2d6949f753b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 04:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 04:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 04:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 04:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 04:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:15:00"}
{"durationMs":0.92,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5b154be7-cd7b-487c-93f8-65b92b784baa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 04:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 04:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 04:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 04:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 04:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:20:00"}
{"durationMs":0.76,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e2f77c7d-3c08-421d-85aa-c31291e7f55b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 04:20:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 04:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 04:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 04:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 04:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:25:00"}
{"durationMs":0.93,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"bbd4c6ff-82c3-4655-9408-bf1ab99a5677","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 04:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 04:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 04:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 04:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 04:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:30:00"}
{"durationMs":0.9,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"07a1a694-0c55-4493-9709-8dcf23ebf22a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 04:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 04:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 04:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 04:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 04:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:35:00"}
{"durationMs":0.75,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d3829095-abf7-4dda-a333-3ca3f55160ee","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 04:35:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 04:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 04:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 04:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 04:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:40:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"ddccec62-1ff0-4142-be55-0dd3d392d18e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 04:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 04:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 04:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 04:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 04:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:45:00"}
{"durationMs":0.72,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"882be251-1843-4fd7-b7f9-537ee291a080","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 04:45:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 04:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 04:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 04:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 04:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:50:00"}
{"durationMs":0.74,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"678d9149-0e61-4f79-9528-ba94366a8832","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 04:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 04:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 04:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 04:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 04:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:55:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1a9bee5a-43fb-43cf-8d4b-ff514bca37e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 04:55:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 04:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 05:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 05:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 05:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 05:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:00:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"35d022d1-4a4f-4f24-bd08-19c2f8085cd8","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 05:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 05:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 05:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 05:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 05:05:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:05:00"}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"27580cbd-07a9-4810-ae82-ef4da80cdb31","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 05:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 05:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 05:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 05:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 05:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:10:00"}
{"durationMs":0.73,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04e10517-00be-44da-8fdf-5dc169d3c699","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 05:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 05:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 05:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 05:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 05:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:15:00"}
{"durationMs":0.91,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b73ad700-30eb-438b-bbc3-8902a21f3b43","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 05:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 05:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 05:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 05:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 05:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:20:00"}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e8ebeb79-e5b8-4b28-a347-f2aed3ca1d4f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 05:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 05:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 05:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 05:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 05:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:25:00"}
{"durationMs":0.81,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"5240a247-9488-418a-867b-0dd53924abb7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 05:25:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 05:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 05:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 05:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 05:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:30:00"}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"b29eb446-1786-46c3-b188-b189a880d0b2","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 05:30:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 05:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 05:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 05:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 05:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:35:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"6e387310-764a-4ca0-b57c-503e69800574","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 05:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:38:01"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 05:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 05:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 05:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 05:40:00","totalConnections":1}
{"durationMs":1.05,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9ac46558-f426-4b88-80bf-c3822bb180f7","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 05:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 05:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 05:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 05:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 05:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:45:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f4b3c2f6-d352-4cdb-80ac-79240db8e441","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 05:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 05:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 05:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 05:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 05:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:50:00"}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d3d48b56-6531-4dc1-ab88-07c20a08e5ac","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 05:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 05:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 05:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 05:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 05:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:55:00"}
{"durationMs":1.28,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"12c1d2c8-1b85-4c61-b363-6d898f54b86b","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 05:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 05:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 06:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 06:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 06:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 06:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:00:00"}
{"durationMs":0.87,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"04b22983-95e6-4a3a-8e3c-4021d481f9cf","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 06:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 06:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 06:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 06:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 06:05:00","totalConnections":1}
{"durationMs":1.1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8add8be9-69cc-4eca-9d07-08a6e0746f3f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 06:05:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 06:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 06:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 06:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 06:10:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:10:00"}
{"durationMs":1,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"108505b6-ce00-4bad-a5b9-54eff464dd6e","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 06:10:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 06:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 06:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 06:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 06:15:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:15:00"}
{"durationMs":1.07,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9c9adbda-e1aa-41fa-96a7-f694162ba9fa","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 06:15:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 06:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 06:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 06:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 06:20:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:20:00"}
{"durationMs":0.97,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"8d9c1588-4255-4114-b688-09ba008da632","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 06:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 06:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 06:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 06:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 06:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:25:00"}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"1d81f1e8-f2fe-4e2a-8c4a-2162b8b95e32","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 06:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 06:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 06:30:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 06:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 06:30:00","totalConnections":1}
{"durationMs":0.77,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"fba69cf5-a0bd-4853-a0e9-4d46a4972cce","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 06:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 06:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 06:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 06:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 06:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:35:00"}
{"durationMs":1.49,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c0ac39fa-0c9b-417a-927e-dff7dffbb695","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 06:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 06:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 06:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 06:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 06:40:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:40:00"}
{"durationMs":1.03,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"755e93e8-7c1a-47c9-b5c4-6e802593f554","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 06:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 06:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 06:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 06:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 06:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:45:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f963f515-375f-4822-8958-83ebafd4838f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 06:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 06:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 06:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 06:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 06:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:50:00"}
{"durationMs":0.78,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"f174141f-7619-47ce-b1da-9f9cc961ad8c","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 06:50:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 06:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 06:55:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 06:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 06:55:00","totalConnections":1}
{"durationMs":1.17,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"9dbb2d56-b271-43c1-a162-f4c9ea38269f","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 06:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 06:59:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 07:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 07:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 07:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 07:00:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:00:00"}
{"durationMs":1.41,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d1f77634-419b-4b0f-a0a3-da6b01fd8c47","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 07:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 07:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 07:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 07:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 07:05:00","totalConnections":1}
{"durationMs":1.09,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"0c2f9904-9a11-4a32-9daa-31af98acf509","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 07:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 07:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 07:10:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:10:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 07:10:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 07:10:00","totalConnections":1}
{"durationMs":0.88,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c1b69cfd-a3b2-4f52-ab77-051dbdbe7f1a","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 07:10:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:11:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:12:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:13:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:14:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 07:15:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 07:15:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:15:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 07:15:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 07:15:00","totalConnections":1}
{"durationMs":0.8,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"e3a453ed-3c40-4e02-80f0-c6547f49ef74","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 07:15:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:16:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:17:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:18:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:19:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 07:20:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 07:20:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:20:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 07:20:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 07:20:00","totalConnections":1}
{"durationMs":1.27,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"c95baec4-bcad-4d9e-8db1-422537b40fdb","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 07:20:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:21:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:22:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:23:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:24:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 07:25:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 07:25:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 07:25:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 07:25:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:25:00"}
{"durationMs":1.06,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"3c4d1d28-67fc-4f62-9023-d8210632e8e0","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 07:25:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:26:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:27:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:28:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:29:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 07:30:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 07:30:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 07:30:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 07:30:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:30:00"}
{"durationMs":1.02,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"98f81772-9f1d-407a-b61d-36a69134d9f5","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 07:30:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:31:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:32:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:33:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:34:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 07:35:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 07:35:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 07:35:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 07:35:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:35:00"}
{"durationMs":1.11,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"70d6caf4-e8f4-4f14-9f3c-25b221dd5018","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 07:35:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:36:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:37:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:38:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:39:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 07:40:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 07:40:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:40:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 07:40:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 07:40:00","totalConnections":1}
{"durationMs":1.2,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"24ae61e8-9e1f-4059-a1af-480b1be27885","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 07:40:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:41:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:42:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:43:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:44:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 07:45:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 07:45:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 07:45:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 07:45:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:45:00"}
{"durationMs":1.13,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"4c05595a-6ce7-4a7e-bbb6-30c5e2b1caea","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 07:45:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:46:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:47:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:48:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:49:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 07:50:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 07:50:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 07:50:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 07:50:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:50:00"}
{"durationMs":1.19,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"365df8aa-4fad-4530-94e0-c9ee5ebbd567","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 07:50:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:51:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:52:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:53:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:54:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 07:55:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 07:55:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 07:55:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 07:55:00","totalConnections":1}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:55:00"}
{"durationMs":1.12,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"d8142934-f71a-4f5b-af17-00a559e21252","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 07:55:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:56:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:57:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:58:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 07:59:00"}
{"level":"info","message":"[CRON] Library overdue check started","service":"cbc-sms","timestamp":"2026-09-08 08:00:00"}
{"level":"error","message":"[CRON] Library overdue check failed: Cannot read properties of undefined (reading 'findMany')","service":"cbc-sms","stack":"TypeError: Cannot read properties of undefined (reading 'findMany')\n    at cron.schedule.timezone [as _execution] (/home/aereuxky/cbcsms-backend/src/jobs/library-overdue.job.js:14:56)\n    at Task.execute (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/task.js:17:25)\n    at ScheduledTask.now (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:38:33)\n    at Scheduler.<anonymous> (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduled-task.js:25:18)\n    at Scheduler.emit (node:events:519:28)\n    at Timeout.matchTime [as _onTimeout] (/home/aereuxky/nodevenv/cbcsms-backend/22/lib/node_modules/node-cron/src/scheduler.js:30:26)\n    at listOnTimeout (node:internal/timers:585:17)\n    at process.processTimers (node:internal/timers:521:7)","timestamp":"2026-09-08 08:00:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 08:00:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 08:00:00"}
{"level":"info","message":"[Subscription Job] Starting subscription & trial reminder cycle at 2026-09-08T05:00:00.047Z","service":"cbc-sms","timestamp":"2026-09-08 08:00:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:00:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 08:00:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 08:00:00","totalConnections":1}
{"level":"info","message":"[Subscription Job] Evaluating 0 trial tenants","service":"cbc-sms","timestamp":"2026-09-08 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 0 subscribed tenants","service":"cbc-sms","timestamp":"2026-09-08 08:00:00"}
{"level":"info","message":"[Subscription Job] Evaluating 4 unpaid subscription invoices","service":"cbc-sms","timestamp":"2026-09-08 08:00:00"}
{"level":"info","message":"[Subscription Job] Subscription & trial reminder cycle completed successfully","service":"cbc-sms","timestamp":"2026-09-08 08:00:00"}
{"durationMs":0.85,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"73044bb1-e0b8-4b03-bb0e-c57075a500e9","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 08:00:02","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:01:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:02:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:03:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:04:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 08:05:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 08:05:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:05:00"}
{"level":"info","message":"Found 1 active API_PULL connections","service":"cbc-sms","timestamp":"2026-09-08 08:05:00"}
{"level":"info","message":"Scheduled integration sync job completed","service":"cbc-sms","successCount":0,"syncedCount":0,"timestamp":"2026-09-08 08:05:00","totalConnections":1}
{"durationMs":0.84,"ip":"127.0.0.1","level":"info","message":"HTTP_REQUEST","method":"GET","path":"/api/health","requestId":"58fc24da-225c-4c12-bf3a-e5ead394a964","schoolId":null,"service":"cbc-sms","status":200,"timestamp":"2026-09-08 08:05:01","userId":null}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:06:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:07:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:08:00"}
{"level":"info","message":"[ScheduledMessages] No messages due for delivery","service":"cbc-sms","timestamp":"2026-09-08 08:09:00"}
{"level":"info","message":"Integration sync cron job triggered","service":"cbc-sms","timestamp":"2026-09-08 08:10:00"}
{"level":"info","message":"Starting scheduled integration sync job","service":"cbc-sms","timestamp":"2026-09-08 08:10:00"}
